gethostbyname_ex(hostname)非常慢

时间:2013-08-31 04:34:58

标签: python sockets ip-address gethostbyname

启动时,IPython(qtconsole)调用socket.gethostbyname_ex(socket.gethostname())[2]来查找指向计算机的IP地址列表。在我管理此Linux调用的服务器上,非常慢(> 20s)...我很难理解,因为ip addr show似乎几乎立即提供相同的信息。有什么办法可以让它更快吗?这可能是网络配置问题(我在路由器后面)?

此问题独立于IPython:

$ time python -c 'import socket; print(socket.gethostbyname_ex(socket.gethostname())[2])' 
['192.168.0.102']
python -c   0.07s user 0.02s system 0% cpu 28.190 total

感谢。

1 个答案:

答案 0 :(得分:0)

我有类似的问题。 碰巧我的主机名是localhost.localdomain,在安装操作系统时很懒。

解决方法是通过sudo vi /etc/hostname给它一个合理的名称并将其更改为myname.mydomain,现在它以1s运行。