实现该功能需要使用Python的socket模块和os模块。

首先,我们需要获取局域网中的所有IP地址和计算机名,可以通过socket模块中的gethostname()函数获取本机名,再通过gethostbyname_ex()函数获取本机IP地址和局域网中的所有IP地址。然后,可以通过os模块中的gethostname()函数和gethostbyname()函数获取其他计算机的名字和IP地址。

接下来,我们可以使用ping命令来判断计算机是否在线。可以通过os模块中的system()函数执行ping命令,如果返回值为0,则代表计算机在线,否则则代表计算机不在线。

最后,将获取到的信息保存到文本文件中,可以通过文件操作函数实现。

下面是一个简单的实现示例:

import socket
import os

# 获取本机名和IP地址
my_name = socket.gethostname()
my_ip = socket.gethostbyname_ex(my_name)[2][0]

# 获取局域网中的所有IP地址和计算机名
ip_list = []
for i in range(1, 255):
    try:
        ip = "192.168.1." + str(i)
        name = socket.gethostbyaddr(ip)[0]
        ip_list.append((ip, name))
    except:
        pass

# 判断计算机是否在线
result = []
for ip, name in ip_list:
    response = os.system("ping -n 1 -w 1000 " + ip)
    if response == 0:
        result.append(name + " " + ip + " is online")
    else:
        result.append(name + " " + ip + " is offline")

# 将信息保存到文本文件中
with open(r"C:\Users\Administrator\Desktop\computer_info.txt", "w") as f:
    f.write("Local computer name: " + my_name + "\n")
    f.write("Local IP address: " + my_ip + "\n\n")
    for r in result:
        f.write(r + "\n")

注意,该示例中使用的IP地址是固定的,如果局域网中的IP地址不是这个范围,需要根据实际情况修改代码。同时,由于ping命令在不同操作系统中的参数不同,因此在不同系统中可能需要修改命令参数

获取局域网内的计算机信息并存到桌面文本中python

原文地址: https://www.cveoy.top/t/topic/ebDd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录