我是python的新手,我试图ping我的办公室网络,并尝试获取要构建的库存系统的主机名。当我运行下面的脚本时,我获得了IP地址,并获得了联机或脱机状态,但没有获得正确的主机名。我只得到发送ping的计算机的主机名。我想我需要用一个字符串捕获它,但是不确定如何做到这一点。最终,只需按一下按钮,即可在GUI中运行。
import ipaddress
from subprocess import PIPE, Popen
import socket
network = ipaddress.ip_network('192.168.1.0/24')
for i in network.hosts():
i = str(i)
h = socket.gethostname()
toping = Popen(['ping', '-c', '5', '-w', '100', i], stdout=PIPE)
output = toping.communicate()[0]
hostalive = toping.returncode
if hostalive == 0:
print(i)
print(h)
print("Is Online")
else:
print(i)
print("Is Offline")