0

好的....虽然我经常学习网络开发,但我知道我错过了一点基本信息,只是为了找出什么而苦苦挣扎。发生这种情况是因为有经验的程序员不关心重述基础知识。

无论如何,我正在尝试从 WHOIS 服务器检索信息,即 whois.apnic.net。现在这个查询工作正常并返回所有 1528 个字节

<?php
$abc=fsockopen("whois.godaddy.com", 43);
$xyz="website.com";
fputs($abc,$xyz);
$output = fread($abc,1528);
print_r($output);
if(!$output)
{
echo "there is no output";
}
?>

但是这个只返回前两行

<?php
$abc=fsockopen("whois.apnic.net", 43);
$xyz="194.6.248.10";
fputs($abc,$xyz);
$output = fread($abc,1528);
print_r($output);
if(!$output)
{
echo "there is no output";
}
?>

我在代码中尝试了很多修改,例如 fgets 而不是 fread,url 而不是 ip 地址,当我将 while(!feof($abc)) 条件放入之前的代码中时,它会返回所有内容,但是当我把它放入如果我删除时间限制,第二个代码它只是超时或继续工作。上述 IP 地址来自欧洲,但在线 Apnic WHOIS 工具提供了有关它的信息,并且 WHOIS API 文档还指出,Apnic 可以联系其他注册机构并检索有关任何 IP 地址的信息。

apnic 网站谈论发送和返回对象,只是“对象”,没有参考。我假设它在谈论 XML 对象。我只想要一个小的、基本的、简单的示例来说明如何查询此 API 并获取和输出“对象”。谢谢!

4

2 回答 2

0

您要查找的 IP 地址在由 RIPE (Whois.ripe.net) 而非 APNIC 管理的范围内。

于 2012-05-21T04:43:40.573 回答
0
    $whoisserver = 'whois.verisign-grs.com';
$domain = 'name.com';
$port = 43;
$timeout = 10;
$fp = @fsockopen($whoisserver, $port, $errno, $errstr, $timeout) or die("Socket Error " . $errno . " - " . $errstr);
fputs($fp, $domain . "\r\n");
while(!feof($fp)){
    $out .= fgets($fp);
}
fclose($fp);
  1. .com whois whois.verisign-grs.com
  2. .net whois whois.verisign-grs.com
  3. .org whois whois.pir.org
  4. 等等

服务网址:http : //akan.online/checkName.com 星期六快乐

于 2018-12-07T22:46:36.523 回答