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";
}
?>

しかし、これは最初の2行のみを返します

<?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";
}
?>

fread の代わりに fgets、IP アドレスの代わりに url など、コードで多くの変更を試みました。 while(!feof($abc)) 条件を前のコードに入れると、すべてが返されますが、これを入れると時間制限を削除すると、2番目のコードがタイムアウトするか、機能し続けます。上記の IP アドレスはヨーロッパのものですが、オンラインの Apnic WHOIS ツールはそれに関する情報を提供し、WHOIS API ドキュメントには、Apnic が他のレジストリに連絡して任意の IP アドレスに関する情報を取得できると記載されています。

apnic の Web サイトでは、オブジェクトの送信と返却について説明していますが、「オブジェクト」のみであり、参照はありません。XMLオブジェクトについて話していると思いました。この API にクエリを実行し、「オブジェクト」を取得して出力する方法の小さくて基本的で単純な例が欲しいだけです。ありがとう!

4

2 に答える 2

0

調べたいIPアドレスはAPNICではなくRIPE(Whois.ripe.net)で管理されている範囲です。

于 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

サービスURL:http ://akan.online/checkName.com ハッピーサタデー

于 2018-12-07T22:46:36.523 に答える