2008-11-24 5 views
3

Если вы наберетеSRV запись поиск с PHP

nslookup -type=SRV _xmpp-server._tcp.gmail.com 

(или использовать команду копания в OSX), вы получите некоторую SRV запись, относящуюся к чату Google

Я хотел бы повторить эту функцию в PHP, есть ли у кого-нибудь хорошие идеи, как это сделать?

Я хотел бы избежать использования Exec(), так как это не возвращает 100% стандартных ответов по OSX/* NIX/WINDOWS

Спасибо!

ответ

8

Вы можете использовать Pear Net_DNS. Мне удалось получить эту работу на Linux, но не тестировал на Windows, или любые другие:

require_once('Net/DNS.php'); 
$resolver = new Net_DNS_Resolver(); 
$response = $resolver->query('_xmpp-server._tcp.gmail.com', 'SRV'); 
if ($response) { 
    foreach ($response->answer as $rr) { 
     $rr->display(); 
    } 
} 

Я изменил пример из их документации. надеюсь, что это поможет

+0

Я предпочел бы привилегировать собственную функцию PHP поверх старых PEAR-библиотек, которая не очень хорошо работает с обновленной версией PHP. Ответ @Tomalak выглядит намного лучше для меня. – 2016-06-16 15:46:19

8

dns_get_record(). Согласно документам он может принимать аргумент int $type, который относится к набору констант, один из которых - DNS_SRV.