Python 主机名解析非常慢

标签 python sockets networking dns ip

我目前正在尝试为我的家庭网络构建一个小型 Networkscan。 为了解析主机名,我想使用在 for 循环中调用的函数来迭代一系列 IP。这做得很好,但我认为 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()

关于Python 主机名解析非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28744556/

相关文章:

java - 检查您要连接的端口是否正在使用

Java 套接字 API : How to tell if a connection has been closed?

java - Java上的Socket连接,指定IP

python - 使用 python c api 的嵌套模块(包)?

python - 如何使用 lxml 获取元素

python - 是否可以在 python 中 pickle itertools.product?

networking - 如何使用多项式/CRC在此二进制消息上运行错误检测?

vb.net - 在 UWP 应用程序上使用 VB.net 获取 IPGlobalProperties

ios - 使用 RTSP 传输视频

python - 使用 Tkinter 时出现致命的 python 错误(pygame 降落伞)段错误