2010-05-25 40 views
0

我正在創建一種新型的電子郵件協議,爲了做到這一點,我必須爲我的域名創建一個SRV DNS記錄。沒有使用PECL或system()類型的函數,有沒有辦法使用PHP查找DNS記錄?

在推廣此協議時,我需要能夠發現給定的主機是否使用我的系統(並且如果不回退到較舊的協議)。

那麼,有沒有辦法拉動使用PHP的DNS記錄(如SRV)而不使用PECL擴展名或通過linux命令行運行它(我已經知道我可以通過ob_start()和system(「host - 牛逼SRV主機名「),但我在尋找一種更好的方式,如果存在的話)。

+0

這是在這之前問的http://stackoverflow.com/questions/313880/srv-record-lookup-with-php – Mark 2010-05-25 20:25:57

回答

1

使用dns_get_record

array dns_get_record ( string $hostname [, int $type = DNS_ANY [, array &$authns [, array &$addtl ]]]) 

獲取與給定主機名相關 DNS資源記錄。

+0

這只是爲了獲得一個IP地址,不返回DNS記錄。 – Navarr 2010-05-25 18:57:28

+0

你是對的,我修正了它:「> – nc3b 2010-05-25 18:58:30

+0

謝謝,我注意到函數,當我去gethostbyname的函數頁面,lol。它的一個新函數,你一直在很大的幫助 – Navarr 2010-05-25 19:00:52

0

你認爲PEAR :: Net_DNS?
http://pear.php.net/package/Net_DNS

據我可以告訴它使用套接字連接(tcp/udp)並解碼解析器數據本身。可用的方法看起來非常廣泛。

+0

另請參見http:// articles.techrepublic.com.com/5100-10878_11-5234651.html – mario 2010-05-25 19:48:02

+0

當我說沒有PECL的時候,我的意思是沒有PEAR,我在共享主機上,所以它的設置要麼很痛苦 – Navarr 2010-05-27 10:32:04

+0

你可以下載PEAR類不需要通過pecl或pear進行服務器範圍的安裝,實際上,在本地項目中使用提取的PEAR類是非常常見的,特別是沒有依賴關係的情況。 – mario 2010-05-27 11:22:57

相關問題