【问题标题】:Find hostname of device on local network with PHP使用 PHP 在本地网络上查找设备的主机名
【发布时间】:2013-05-10 05:18:48
【问题描述】:

我正在尝试确定网络上要存储的设备的主机名,以便向我的用户显示更多的人类信息,因为我的源文件很遗憾不包含此信息(并且是动态的,因此我需要在其他地方维护此信息),但是内置的 PHP 函数 gethostbyaddr() 不起作用。

例如,我在10.0.60.1 有一个主机名为Phone-Chris 的设备(我不关心域部分,只关心主机名本身)。

当我使用时:

<?php
    $hostname = gethostbyaddr("10.0.60.1");
    echo "$hostname";
?>

它只返回 IP 地址(表示查找失败)。如果我将其更改为8.8.8.8,它将按预期工作并显示google-public-dns-a.google.com。我的印象是这个函数可能不会做我想要的,因为它似乎依赖于反向查找。

如何确定网络上设备的软管名称,以便以这种方式存储该信息? (即,返回Phone-Chris)。

【问题讨论】:

  • 您是否在本地网络上运行了 DNS 服务器?如果不是,我不确定您希望这些信息来自哪里。
  • 这个网络上有一个 DNS 服务器,但是我不能用它来导航到带有 URL 的设备(即使该设备与我设置的 DNS 服务器相同并且应用了主机名) )。是否有其他方法可以找到这些信息?

标签: php lan hostname


【解决方案1】:

这与反向 dns 查找有关...您不会从 php 中获得任何对大众的喜爱。我能说的唯一可行的情况是客户端和网络服务器共享同一个 dns 服务器。

【讨论】:

  • 在这种情况下,我查询的设备和我的机器(也是服务器)共享同一个 DNS 服务器。即便如此,我也无法获得这些信息。
  • 你那里有反向 DNS PTR 记录吗?
  • 用你的public ip address试试吧……你可能会得到一些回报,虽然我不认为它会是你想要的。
  • Public 没用,我需要查询 LAN 上的一堆设备并获取它们的主机名以登录我正在处理的界面。现在不知道该怎么做。爆炸!
  • 命令行:sudo arp -a
猜你喜欢
  • 2019-07-09
  • 1970-01-01
  • 2021-05-06
  • 2019-06-21
  • 1970-01-01
  • 2011-08-22
  • 1970-01-01
  • 1970-01-01
  • 2020-02-27
相关资源
最近更新 更多