Python 获取局域网内电脑信息并写入文本文件
以下是一个示例代码,使用 Python 获取局域网内所有电脑信息并存储到桌面文本文件:
import os
import platform
import socket
# 获取本机IP地址
def get_local_ip():
return socket.gethostbyname(socket.gethostname())
# 获取本机主机名
def get_local_hostname():
return socket.gethostname()
# 获取操作系统信息
def get_os_info():
os_name = os.name
if os_name == 'posix':
return platform.system() + ' ' + platform.release()
elif os_name == 'nt':
return platform.system() + ' ' + platform.win32_ver()[0]
# 获取电脑型号
def get_computer_model():
if platform.system() == 'Windows':
return platform.win32_computername()
elif platform.system() == 'Linux':
return platform.uname()[1]
# 获取局域网内所有电脑信息
def get_lan_computers():
computers = []
ip_prefix = get_local_ip().split('.')[:-1]
for i in range(1, 255):
ip = '.'.join(ip_prefix) + '.' + str(i)
if ip == get_local_ip():
continue
try:
hostname = socket.gethostbyaddr(ip)[0]
os_info = get_os_info()
model = get_computer_model()
computers.append((hostname, ip, os_info, model))
except socket.herror:
pass
return computers
# 将信息写入文本文件
def write_to_file(computers):
with open(os.path.join(os.path.expanduser('~'), 'Desktop', 'lan_computers.txt'), 'w') as f:
for computer in computers:
f.write('主机名:' + computer[0] + '\n')
f.write('IP地址:' + computer[1] + '\n')
f.write('操作系统:' + computer[2] + '\n')
f.write('电脑型号:' + computer[3] + '\n')
f.write('\n')
if __name__ == '__main__':
computers = get_lan_computers()
write_to_file(computers)
该代码使用了 Python 内置的 socket、os、platform 等模块,可以获取本机 IP 地址、主机名、操作系统信息、电脑型号等,并通过遍历局域网内所有 IP 地址,获取局域网内所有电脑的信息,并将其写入桌面上的文本文件中。运行该代码需要管理员权限。
原文地址: https://www.cveoy.top/t/topic/nIPt 著作权归作者所有。请勿转载和采集!