首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python主机名解析非常慢

Python主机名解析非常慢
EN

Stack Overflow用户
提问于 2015-02-26 22:07:12
回答 2查看 1.7K关注 0票数 2

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

代码语言:javascript
复制
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") 
EN

回答 2

Stack Overflow用户

发布于 2015-02-26 22:17:50

看看这个有什么用:

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

代码语言:javascript
复制
import socket 
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("gmail.com",80))
print(s.getsockname()[0])
s.close()
票数 1
EN

Stack Overflow用户

发布于 2015-03-02 16:23:33

gethostbyaddr和类似的函数依赖于你的resolv.conf (参见http://linux.die.net/man/5/resolv.conf)。

  1. 你的DNS解析器很慢(尝试使用谷歌的公共DNS)
  2. 一些in没有PTR记录或它们的NS离线,默认超时是5秒-在“循环”

时请记住这一点。

为了提高性能,您可能希望将其并行化,请使用快速解析器并将超时设置保持为最小。

如果可以,请使用类似于http://c-ares.haxx.se/的库

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28744556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档