gpt4 book ai didi

Python Socket - 获取局域网连接的服务器主机名

转载 作者:太空宇宙 更新时间:2023-11-03 21:29:20 24 4
gpt4 key购买 nike

我正在尝试获取 LAN 连接服务器的主机名,以便我可以使用主机名对这些服务器运行查询:

import socket
IP_RANGE = 10
hostNamesList = []
socket.setdefaulttimeout(0.1)
for i in range(IP_RANGE):
try:
hostNamesList.append(socket.gethostbyaddr("192.168.1.%s" % i)[0])
except:
pass

print hostNamesList

即使我将超时设置为 0.1 秒,上述代码也需要几分钟来扫描选定的 IP 范围。

我是否做错了什么,或者有什么方法可以更快地获取主机名?

最佳答案

感谢yan的建议,我已经解决了我的问题。大约需要10秒而不是几分钟

import socket
from threading import Thread


hostNamesList=[]
def searchForSingleIP(i):
try:
hostNamesList.append(socket.gethostbyaddr("192.168.1.%s" % str(i) )[0])

except:
pass

for i in range(256):
worker = Thread(target = searchForSingleIP, args = (i,))
worker.start()
worker.join(timeout=0.05)

print hostNamesList

关于Python Socket - 获取局域网连接的服务器主机名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53633014/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com