0

現在、fsockopenを介してnominets 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登録者:MadeUp。t / a Madeup [Tag = MADEUP] URL: http: //www.madeupadomain.com関連日:登録日:1955年2月14日更新日:2016年2月11日最終更新日:2001年2月11日登録状況:更新日まで登録。ネームサーバー:ns1.madeupnamesrver.com ns2.madeupnamesrver.com ns3.madeupnamesrver.com ns4.madeupnamesrver.com WHOISルックアップは2011年12月7日00:00:00に行われました-このWHOIS情報は、NominetUKによって無料で提供されています。 .ukドメイン名の中央レジストリ。この情報と.ukWHOISは次のとおりです。CopyrightNominetUK1996-2011。.ukWHOISにアクセスしたり、.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 に答える