2012-04-01 3 views
0

Я пытаюсь разрешить имя хоста в PHP и не могу использовать встроенную функцию gethostbyname, потому что она не поддерживает параметр таймаута, поэтому я пытаюсь справиться с этой проблемой, просматривая имя хоста с nslookup или host. Проблема в том, что эти функции/программы не возвращают простой результат, но что-то вродеnslookup/host parsing 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 Adress? Благодарю.

ответ

0

Это регулярное выражение может быть улучшено, но оно будет делать трюк.

Если ваш выход в $ линий, то вы можете использовать

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

Тогда первый матч будет храниться в

$matches[1] 
+0

Я дам ему попробовать, спасибо. – Stefan

+0

Это не удастся для IPv6. Используйте '[0-9a-f.:]', Чтобы он работал для обеих версий протокола. О, и вам не нужно скрывать '.' внутри класса персонажа. – ThiefMaster

+0

Хорошие очки, ThiefMaster. – jcbwlkr

 Смежные вопросы

  • Нет связанных вопросов^_^