【问题标题】:socket.gethostbyaddr() on a linux system and local networklinux系统和本地网络上的socket.gethostbyaddr()
【发布时间】:2022-04-13 02:57:24
【问题描述】:

我有一个使用此功能的 django 应用程序,我正在尝试获取访问我的应用程序的 IP 地址的计算机名称。我通过使用django-ipware 来获取客户端的IP 地址,这部分工作正常。然后我使用socket.gethostbyaddr() 来获取客户端的计算机名称,这在我的 Windows 开发机器上运行良好。

def get_comp_name(request):
    client_ip = get_client_ip(request)
    try:
        comp_name = socket.gethostbyaddr(client_ip[0])[0]
    except socket.herror:
        comp_name = ''

当我尝试部署到 centOS 7 机器时,在本地网络 IP 地址上执行 socket.gethostbyaddr() 时收到以下错误。

socket.herror: [Errno 1] 未知主机

我可以毫无问题地 ping 本地 IP 地址。我是否缺少我的 centOS 7 机器上的配置?

【问题讨论】:

  • 我遇到同样的问题,仍在寻找解决方案。

标签: python django python-3.x centos


【解决方案1】:

您的 DNS 服务器需要有一个条目才能正常工作。检查 /etc/resolv.conf 是否 DNS 服务器 IP 正确,检查 DNS 服务器是否可以从 CentOS 节点访问,最后检查 DNS 服务器中的条目是否正确。

【讨论】:

  • 这个答案作为评论会更好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-25
相关资源
最近更新 更多