2013-05-10 74 views
1

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

例如,我有一个设备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。我觉得这个函数可能不会做我想做的事情,因为它似乎依赖于反向查找。

如何确定网络上设备的hosename是什么,以便我可以用这种方式存储信息? (即,返回Phone-Chris)。

+0

你有在本地网络上运行的DNS服务器吗?如果不是,我不确定您希望这些信息来自哪里。 – 2013-05-10 05:26:20

+0

这个网络上有一个DNS服务器,但是我不能用它来通过URL导航到设备(即使设备与我设置的DNS服务器相同,并且应用了主机名)。或许我可以通过其他方式找到这些信息? – teknetia 2013-05-10 05:28:18

回答

0

这与反向dns查找有关......你不会对这个来自php的群众有任何的爱。只有情况下,我可以告诉的是客户端和Web服务器共享相同的DNS服务器。

+0

在这种情况下,我正在查询的设备和我的机器(也是服务器)都共享相同的DNS服务器。尽管如此,我仍然无法获得这些信息。 – teknetia 2013-05-10 05:32:21

+0

你有反向DNS的'PTR'记录吗? – Bart 2013-05-10 05:53:03

+0

与你的[公共IP地址](http://www.whatsmyip.org/)一起试用它...你可能会得到一些东西,尽管我不认为它会成为你正在寻找的东西。 – Orangepill 2013-05-10 05:58:14