0

我目前正在尝试通过 fsockopen 连接到 nominet whois 服务,但我在阅读回复时遇到问题。

使用的代码:

$fp = fsockopen("whois.nic.uk", 43, $errno, $errstr);

if (!$fp) {
    echo "ERROR: $errno - $errstr<br />\n";
} else {
echo "<h1>Connected To The WHOIS Server.</h1>\n\n";
}


fwrite($fp, "madeupdomain.co.uk\r\n");
$lookup = fread($fp, 4096);
fclose($fp);


echo $lookup;

现在我成功连接到 WHOIS 服务器并收到回复,但它总是错过结束。

域名:madeupdomain.co.uk 注册人:Made Up Inc. 注册人类型:未知 注册人地址:123 Fake Road City UK 注册商:Made Up。t/a Madeup[Tag = MADEUP] URL: http://www.madeupadomain.com相关日期: 注册日期: 14-Feb-1955 更新日期: 11-Feb-2016 最后更新: 11-Feb-2001 注册状态:注册至更新日期。名称服务器:ns1.madeupnamesrver.com ns2.madeupnamesrver.com ns3.madeupnamesrver.com ns4.madeupnamesrver.com WHOIS 查询于 2011 年 12 月 7 日 00:00:00 进行——此 WHOIS 信息由 Nominet UK 免费提供.uk 域名的中央注册机构。此信息和 .uk WHOIS 是:Copyright Nominet UK 1996 - 2011。您不得访问 .uk WHOIS 或使用其中的任何数据,除非获得完整的使用条款允许,请访问http://www.nominet.org.uk/whois,其中包括对以下方面的限制:(A) 将数据用于广告,或其重新包装、重新编译、重新分发

正如您所看到的,它缺少真正的 whois 查找的最后一部分,这种情况总是会发生,但它被切断的位置会根据我查询的域而变化。

有没有人有什么建议?

谢谢。

4

1 回答 1

3

您只读取 4096 个字节:

fread($fp, 4096);

如果您想阅读更多内容(显然需要),只需增加数字或循环直到 EOF:

while (!feof($fp)) {
   $contents .= fread($fp, 8192);
}
于 2011-12-07T23:53:27.547 回答