2012-04-01 33 views
0

我想解決在PHP中的主機名稱,並不能使用內置的gethostbyname函數,因爲它不支持超時選項,因此我試圖通過查找來解決這個問題主機名爲nslookuphost。問題是,這些功能/程序不返回平原的結果,但像nslookup /主機解析PHP

東西
 
Non-authoritative answer: 
Name: google.de 
Address: 173.194.35.159 
Name: google.de 
Address: 173.194.35.151 
Name: google.de 
Address: 173.194.35.152 

有誰知道PHP中的快速功能解析所以它只是返回第一個IP地址?謝謝。

回答

0

這個正則表達式可以改進,但它會做的。

如果你的輸出是$線,那麼你可以使用

preg_match('/Address: ([0-9\.]*).*/', $lines, $matches); 

然後第一場比賽將被存儲在

$matches[1] 
+0

我給它一個嘗試,謝謝。 – Stefan 2012-04-01 17:28:33

+0

IPv6將失敗。使用'[0-9a-f。:]'使它適用於兩種協議版本。哦,你不需要在角色類裏面逃避'.'。 – ThiefMaster 2012-04-01 17:30:01

+0

好點,ThiefMaster。 – jcbwlkr 2012-04-01 17:31:41