2010-05-25 89 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

相关问题