服务器信息获取工具

news2024/9/23 23:22:53
功能介绍
  • SSH连接到远程服务器:
  • 用户可以输入目标服务器的IP地址、用户名、密码以及SSH端口(默认22)。
  • 工具会尝试连接到远程服务器,并在连接失败时显示错误信息。
  • 运行命令并返回输出:
  • 工具可以在远程服务器上运行命令,并返回命令的输出结果。
  • 解析配置文件:
  • 工具可以解析不同类型的配置文件,包括PHP、Java、Python、Ruby和ASP/.NET,提取数据库配置信息。

4. 分析服务器信息:

  • 工具可以获取系统信息、用户信息、网络信息、进程信息和已安装的软件信息。
  • 工具还可以获取网站配置和数据库配置信息。

5. 保存结果到文件:

  • 用户可以选择保存路径,工具会将分析结果保存为JSON文件。

SSH连接实现

import paramiko
from tkinter import messagebox

def ssh_connect(ip, username, password, port=22):
    try:
        client = paramiko.SSHClient()
        client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        client.connect(ip, username=username, password=password, port=port)
        return client
    except Exception as e:
        messagebox.showerror("连接失败", f"连接失败: {e}")
        return None
运行命令并返回输出
def run_command(client, command):
    stdin, stdout, stderr = client.exec_command(command)
    return stdout.read().decode()

服务器基本信息

def analyze_server(client):
    results = {}

    # 系统信息
    os_version = run_command(client, "cat /etc/os-release")
    kernel_version = run_command(client, "uname -r")
    hostname = run_command(client, "hostname")
    results['系统信息'] = {
        'os_version': os_version.strip().split('\n'),
        'kernel_version': kernel_version.strip(),
        'hostname': hostname.strip()
    }

    # 用户信息
    users = run_command(client, "cat /etc/passwd")
    sudoers = run_command(client, "cat /etc/sudoers")
    results['用户信息'] = {
        'users': users.strip().split('\n'),
        'sudoers': sudoers.strip().split('\n')
    }

    # 网络信息
    interfaces = run_command(client, "ip addr")
    ifconfig = run_command(client, "ifconfig")
    listening_ports = run_command(client, "netstat -anp")
    active_connections = run_command(client, "ss -tunap")
    results['网络信息'] = {
        'interfaces': interfaces.strip().split('\n'),
        'ifconfig': ifconfig.strip().split('\n'),
        'listening_ports': listening_ports.strip().split('\n'),
        'active_connections': active_connections.strip().split('\n')
    }

    # 进程信息
    processes = run_command(client, "ps aux")
    results['进程信息'] = processes.strip().split('\n')

    # 已安装的软件
    installed_software = run_command(client, "rpm -qa")
    results['安装软件信息'] = installed_software.strip().split('\n')

    return results

主界面效果

输出内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1910602.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

游戏AI的创造思路-技术基础-决策树(1)

决策树,是每个游戏人必须要掌握的游戏AI构建技术,难度小,速度快,结果直观,本篇将对决策树进行小小解读~~~~ 目录 1. 定义 2. 发展历史 3. 决策树的算法公式和函数 3.1. 信息增益(Information Gain&…

枚举对象序列化规则(将Java枚举转换为JSON字符串的步骤)

文章目录 引言I 案例分析1.1 接口签名计算1.2 请求对象1.3 枚举对象序列化II 在JSON中以枚举的code值来表示枚举的实现方式2.1 自定义toString方法返回code引言 在Java中,每个对象都有一个toString方法,用于返回该对象的字符串表示。默认情况下,Enum类的toString方法返回的…

dbeaver连接postgresql报错��������: �û� “root“ Password ��֤ʧ��

文章目录 问题描述解决办法 问题描述 新安装完成的postgresql通过dbeaver连接访问报错��������: �� “root” Password ��֤ʧ&#…

绝区柒--LLM简史

这是一系列LLM介绍的可成,分以下五个不分 序言:大型语言模型LLM简史第一部分:代币化——完整指南第 2 部分:使用 Python 中的 Scratch 从零开始使用 word2vec 进行词嵌入第 3 部分:用代码解释自注意力机制第 4 部分&a…

揭秘“消费即赚”的循环购模式

大家好,我是吴军,今天我将带您深入探索一种颠覆传统的新型商业模式——循环购模式。在这个模式中,消费者不仅能享受到购物的乐趣,还能通过消费获得实实在在的回报,甚至实现“边消费边赚钱”的奇妙体验。您是否好奇&…

Floyd算法简单理解:不断加中转点更新最短路,实现多对多最短路径

目录 Floyd算法 简单理解 简单例子 Floyd算法简单理解:不断加中转点更新最短路,实现多对多最短路径 Floyd算法 又称为Floyd-Warshall算法,是一种用于求解带权有向图中任意两顶点间的最短路径的算法。该算法利用动态规划的思想,通过不断更新顶点对之间的最短路径来实现。…

Games101——光珊化——深度缓存——shading着色 1

深度缓存 如何解决远近的问题,能正确的覆盖 按照画作来说,先画出远处的物体,再画出近处的物体,近处会将其覆盖,这种算法叫做画家算法 但事实上,排序不仅要花更多的时间,而且排序并不容易&…

Simulink生成代码时端口名称乱码问题

写在最前: 在使用Simulink生成代码时发现端口名称与模型中定义的输如输出端口名称不一致,代码生成的端口名称为随机字符名称。 在生成的H文件中发现,端口定义的结构体名称与模型中实际定义的名称不符。 模型中的定义 检查后发现&#xff0c…

Dbeaver连接人大金仓

Dbeaver 连接 人大金仓。 1、新建驱动管理器 类名:com.kingbase8.Driver URL模板:jdbc:kingbase8://{host}[:{port}]/[{database}] (格式:jdbc:kingbase://IP地址:端口号/数据库名称); 默认端口&#x…

【学术会议征稿】第八届电气、机械与计算机工程国际学术会议(ICEMCE 2024)

第八届电气、机械与计算机工程国际学术会议(ICEMCE 2024) 2024 8th International Conference on Electrical, Mechanical and Computer Engineering 第八届电气、机械与计算机工程国际学术会议(ICEMCE 2024)将于2024年10月25日…

1区老牌神刊,仅37天录用!网友:“这审稿速度救了我一条命”!

关注GZH【欧亚科睿学术】,GET完整版2023JCR分区列表! ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 期刊信息概况 【期刊类型】计算机科学类SCIE&EI 【出版社】ELSEVIER出版社 【期刊概况】IF:4.0-5.0,JCR1区,中科院3区…

MATLAB实现-基于CNN-BiLSTM卷积神经网络结合双向长短期记忆神经网络数据分类预测(多输入多分类)

MATLAB实现-基于CNN-BiLSTM卷积神经网络结合双向长短期记忆神经网络数据分类预测(多输入多分类) 1.数据均为Excel数据,直接替换数据就可以运行程序。 2.所有程序都经过验证,保证程序可以运行。 3.具有良好的编程习惯&#xff0…

工业机床CNC设备如何上云?

工业机床CNC设备如何上云? 工业机床的计算机数控(CNC)设备实现远程监控数据上云,是现代制造业智能化转型的关键一环。这一过程不仅能够实时监测设备状态、优化生产流程,还能通过大数据分析提升生产效率与产品质量&…

模型泛化与工程技巧-模型泛化

1. 模型存在问题 1.1 过拟合 过拟合(Overfitting):模型过于紧密或精确地匹配特定数据集,以致于无法良好地拟合其他数据或预测未来的观察结果的现象。通俗的来讲,就是训练的模型在训练集上的精确度很高,但是在测试集上的精确度却很差的现象。 1.2 如何防止过拟合—数据角度 …

汇聚荣拼多多实力怎么样?

汇聚荣拼多多实力怎么样?拼多多作为中国电子商务行业的后起之秀,其市场表现和商业策略引起了广泛的关注。在回答“汇聚荣拼多多实力怎么样?”这一问题时,我们可以明确地看到,拼多多通过其独特的商业模式和创新策略,在竞争激烈的…

1. CSS Grid 网格布局教程

CSS Grid 网格布局教程 一、概述 网格布局(Grid)是最强大的 CSS 布局方案。 它将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局。以前,只能通过复杂的 CSS 框架达到的效果,现在浏览器…

推三返一结合消费增值,高效裂变且稳定增值

在当今竞争激烈的商业版图中,企业正寻求创新的路径以吸引顾客、驱动增长。推三返一与消费增值模式作为两大创新策略,正以其独特的裂变机制,为企业开辟出一条通往成功的高速公路。 推三返一模式,其精髓在于通过消费者自身的社交网…

海外文摘杂志社《海外文摘》杂志社2024年第1期目录

作品选 封2,封3-封4 海外艺术 穿越色彩的维度康定斯基的艺术哲学 谢博文1-3 舍伍德安德森《小城畸人》中重复性女性形象塑造分析 吴燕佳 郭思霈4-6 文化艺术《海外文摘》投稿:cnqikantg126.com 浅谈文化润疆视域下的西域汉语诗学 蔡丽7-9 明清时期书法艺术发展 柏则…

《mysql篇》--索引事务

索引 索引的介绍 索引是帮助MySQL高效获取数据的数据结构,是一种特殊的文件,包含着对数据表里所有记录的引用指针,因为索引本身也比较大,所以索引一般是存储在磁盘上的,索引的种类有很多,不过如果没有特殊…

AI工具GitHub Copilot:GitHub和OpenAI联合打造的一款创新的智能代码辅助工具

GitHub Copilot是由GitHub和OpenAI联合打造的一款创新的智能代码辅助工具,它正改变着全球数百万开发者编写代码的方式。这个AI编程助手以其强大的代码补全和生成能力,帮助程序员们以更高的效率、准确性和速度完成编码任务。 喜好儿网查看更多 GitHub C…