我目前正在尝试为我的家庭网络构建一个小的Networkscan。
为了解析主机名,我想在一个遍历一系列IP的for循环中使用此函数。这样做很好,但是我认为gethostbyaddr(tgtHost)函数非常慢。有没有办法加快速度或使用替代功能?

def fn_hostscan(tgtHost):

    response = os.system("ping -n 1 " + tgtHost + "> C:\\temp\log.txt")

    if response == 0:
        try:
            tgtName = gethostbyaddr(tgtHost)
            print("\n[+] " + tgtHost + " = " + tgtName[0])
        except:
            dummy = 0
    else:

    print("\n[-]" + tgtHost + " = None found")

最佳答案

看一下这是怎么回事:

这适合您的目的吗? --
Finding local IP addresses using Python's stdlib

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("gmail.com",80))
print(s.getsockname()[0])
s.close()

10-04 14:10