1

我正在使用以下 php 代码进行 dnsbl 查找。我想要一种方法来做同样的事情,但使用代理服务器。有什么方法可以使用 cURL 来实现吗?

if (dns_check_record('91.190.54.65.score.senderscore.com', 'A'))
   return gethostbyname('91.190.54.65.score.senderscore.com');
else
   return false;
4

1 回答 1

1

PHP 中的 CURL 支持非常糟糕。根据我所看到的,它似乎很久没有更新了。PHP CURL 模块缺少许多功能,不幸的是 DNS 解析就是其中之一。

如果您尝试从 PHP 代理 DNS 查询,我只能想到几种直接从 PHP 执行此操作的方法。一种是每次要切换dns服务器时重写/etc/resolv.conf文件。另一种是执行nslookup或dig,然后解析结果。

如果出于某种原因必须使用 CURL 和 PHP,您可以修补 libcurl 源以支持 CURLOPT_RESOLVE 和 CURLOPT_DNS_SERVERS。制作该补丁相当简单,并且可能会受到社区的欢迎。过去我不得不修补类似的东西,下载和编译扩展程序比实际修补代码花费的时间更长。

于 2012-01-24T21:02:24.743 回答