2013-05-10 102 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

相關問題