0

whois ルックアップに次のコードを使用します。

public static string LookUp(string ip, string whoisServer){
    string buff = string.Empty;
    string strDomain = ip + "\r\n";
    byte[] arrDomain = Encoding.ASCII.GetBytes(strDomain);
    using (TcpClient tcp = new TcpClient(whoisServer, 43)) {
       using (Stream tcpStream = tcp.GetStream) {
          using (StreamReader objSR = new StreamReader(tcpStream, Encoding.ASCII)) {
            tcpStream.Write(arrDomain, 0, strDomain.Length);
            buff = objSR.ReadToEnd;
          }
       }
    }
    return buff;
   }

whois.apnic.net を除いて正常に動作します (熟した、arin、lacnic、afrinic)。Wireshark を使用すると、apnic が一定の間隔で同じ応答を送信し続けることに気付きました。

これがなぜなのか誰か知っていますか?

さらに、apnic に割り当てられた IP アドレス (103.31.186.82) がルーマニアを指し、「ISP」がラトビアにあるのはなぜですか?

4

1 に答える 1

0

\r\n シーケンスでの給餌場所:

string strDomain = ip + "\r\n";

\n: を入力してみてください:

string strDomain = ip + "\n";

または単に \r:

string strDomain = ip + "\r";

一部のwhoisサーバーは、通常のペアではなく、行末や改行にのみ応答し、サーバーで実行されているOSに依存します。

異なるプラットフォーム間でテキスト ファイルを処理する場合もほぼ同じです。Windows マシンは通常、二重行末を使用する傾向があり、Linux/Unix バリアントは異なります :-)

さらに

多くの理由がありますが、ISP の本社/本社はラトビアにあり、地理情報を提供するために使用したクエリ ツールで使用されたレコードのアドレスは HQ のものである可能性がありますが、物理的な IP リンクは実際にはあなたが期待する地理的領域。

于 2013-05-29T19:26:35.257 に答える