【问题标题】:getting hostname of remote computers on the local network not setup in /etc/hosts获取本地网络上未在 /etc/hosts 中设置的远程计算机的主机名
【发布时间】:2020-06-02 11:23:54
【问题描述】:

我有一个新的学习,我正在尝试使用 python 的套接字获取主机名。

所以我从我的 macbook 运行了以下代码:

socket.gethostbyaddr("192.168.1.111")

我得到了('rock64', [], ['192.168.1.111']),然后我尝试了一台不在网络上但曾经是的计算机的 IP 地址:

socket.gethostbyaddr("192.168.1.189")

它返回:('mint', [], ['192.168.1.189']) 然后我意识到它来自/etc/hosts 文件。

现在在那个主机文件中我也有这个条目:

/etc/hosts

172.217.25.3 google.com.hk

但是如果我尝试从 wan 地址的 ip 获取主机,我会得到与预期不同的结果!

socket.gethostbyaddr("172.217.25.3")

返回('hkg07s24-in-f3.1e100.net', ['3.25.217.172.in-addr.arpa'], ['172.217.25.3'])

所以我不知道在 WAN ip 地址的后一种情况下我在哪里获取主机名,为什么在本地计算机 IP 的情况下我从配置的 /etc/hosts 文件中获取主机名?

我们如何在不查看 /etc/hosts 文件或其他方式的情况下获得本地网络上主机的主机名socket.gethostbyaddr

【问题讨论】:

  • 您希望获得什么主机名以及用于什么目的?在打击垃圾邮件发送者时,反向 DNS 查找通常很有用,即在服务器所有者有动机向 RIPE 注册正确域名的情况下。大多数 IP 地址都没有解析回任何有意义的东西,所以我想知道这样做的原因是什么。
  • 我最感兴趣的是获取本地网络上的主机名!但我只获得我在 /etc/hosts 文件中设置的主机名
  • 在 OSI 模型的第 2 层和第 3 层没有“主机名”这样的术语。 DNS、MDNS、NETBIOS 是第 5,7 层应用协议。您可以使用它们来获取泄露的名称,但它可能不可靠,因为您网络上的主机可能不会运行任何可用于服务发现的服务。所以我的问题是:您需要什么样的主机名以及用于什么目的?
  • 我们做echo $HOSTNAME时得到的那个或者路由器在dhcp设置下说的主机id
  • $HOSTNAME 是内部私有的东西,它与外界无关,除非主机想通过 avahi-daemon 或类似的东西与邻居共享此类信息。在某些特定情况下,路由器会通过 dhcp 请求获取泄露的主机名。您可以监控您的网络是否存在此类泄漏(netbios、mdns、dhcp 等),但此类信息与通信目的无关。您可以嗅探此类泄漏以构建 MAC=>name 关联映射以协助某些登录 IDS 系统。您能否告诉我们agian您获取本地网络主机的“主机名”的目的是什么?

标签: python-3.x sockets networking hostname


【解决方案1】:

这是对“如何在本地网络上建立网络设备注册表?”问题的基于意见的回答

在本地网络上构建设备注册表的最佳方法是在网关上设置ntopng。它使用 DPI(深度包检测)技术来收集有关主机的信息。 NTOPNG 有很好的用户界面并显示主机名(如果可能)。 您可以为不会通过任何协议泄漏主机名的特定主机分配别名。

由于某些原因,ntopng 开发人员没有在请求 http://YOUR-SERVER:3000/lua/host_get_json.lua?ifid=2&host=IP-OF-DEVICE 的 json 响应中包含别名。

您可以通过将行 require "mac_utils"hj["alias"]=getDeviceName(hj["mac_address"]) 添加到文件 /usr/share/ntopng/scripts/lua/host_get_json.lua 来手动添加它

您可以使用REST API 来询问 ntopng 并使用提供的信息来构建您需要的任何脚本。

【讨论】:

  • 我会试试这个。新的思维方式。
猜你喜欢
  • 2012-10-28
  • 2014-10-06
  • 2017-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多