我有一个使用此功能的 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 机器时,执行
socket.gethostbyaddr()
时出现以下错误在本地网络 IP 地址上。socket.herror: [Errno 1] Unknown host
我可以毫无问题地 ping 本地 IP 地址。我是否缺少我的 centOS 7 机器上的配置?
最佳答案
您的 DNS 服务器需要有一个条目才能正常工作。检查/etc/resolv.conf 是否 DNS 服务器 IP 正确,检查 DNS 服务器是否可以从 CentOS 节点访问,最后检查 DNS 服务器中的条目是否正确。
关于python - linux系统和本地网络上的socket.gethostbyaddr(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55876875/