首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python gethostbyaddr未知主机mac

python gethostbyaddr未知主机mac
EN

Stack Overflow用户
提问于 2015-06-09 01:10:50
回答 1查看 739关注 0票数 0

我正在尝试使用python中的套接字函数gethostbyaddr。它在Linux上工作得很好,但在OSX上却不行

它在像8.8.8.8这样的远程地址上工作

代码语言:javascript
复制
>>> socket.gethostbyaddr('8.8.8.8')
('google-public-dns-a.google.com', ['8.8.8.8.in-addr.arpa'], ['8.8.8.8'])

它还在lookback 127.0.0.1上工作:

代码语言:javascript
复制
>>> socket.gethostbyaddr('127.0.0.1')
('localhost', ['1.0.0.127.in-addr.arpa'], ['127.0.0.1'])

但它不在本地地址10.102.188.21上:

代码语言:javascript
复制
>>> socket.gethostbyaddr('10.102.188.21')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
socket.herror: [Errno 1] Unknown host

在Linux上:

代码语言:javascript
复制
>>> print(socket.gethostbyaddr('10.102.188.21'))
('Pierre.local', [], ['10.102.188.21'])

使用摘要进行查询:

代码语言:javascript
复制
dig -x 10.102.188.21

; <<>> DiG 9.8.3-P1 <<>> -x 10.102.188.21
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 21064
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;21.188.102.10.in-addr.arpa.    IN  PTR

它不是一个正确的PTR条目,但它应该由gethostbyaddr()

EN

回答 1

Stack Overflow用户

发布于 2015-06-09 19:16:21

在linux上,/etc/nsswitch.conf中有一个用于解析主机名的mdns选项。这就是为什么Linux可以在本地网络上解析主机名的原因

因为它是zeroconf的一部分,所以OS也应该用mDNS来解决这个问题

感谢mata的帮助和larsks的zeroconf

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

https://stackoverflow.com/questions/30715195

复制
相关文章

相似问题

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