0

編集: このコードは内部 IP のみを返すようです。C# を使用して外部 IP を見つける方法はありますか?

だから私はあなた自身のIPアドレスを取得する「標準的な」方法を使用してきました:

IPAddress Own;
IPHostEntry host = Dns.GetHostEntry(Dns.GetHostName());
foreach (IPAddress ip in host.AddressList)
{
    if (ip.AddressFamily == AddressFamily.InterNetwork)
    {
        Own = ip;
    }
}

問題は、これが私に与えるアドレスが英国のどこかであり、私はオーストラリアにいることです-明らかに、Googleに自分のIPアドレスを尋ねると、このコードが私に与えるものとは異なるものを取得します.

では、なぜこのコードが機能しないのでしょうか? 私が見たところ、DNS サーバーを使用して自分のホスト名 (URL ではなく、単なるコンピューター名です...) を解決する方法は少し奇妙ですが、正しい方法であると信じています。何がうまくいかないのですか?

4

1 に答える 1

0

システムの静的 IP アドレスはありますか? 通常、動的 IP (DHCP クライアントとして) またはオフィスのローカル IP アドレスを使用します。

Google は、ローカル システムではなく、ISP の IP アドレスを表示できます。静的 IP アドレスを使用していない場合。

ローカル システムには任意の IP を使用できます。ローカル システムは、国内または海外の複数のローカル ネットワークに属している可能性があります。

あなたのコードはまったく問題ないようで、ローカル IP アドレスが表示されています。ネットワーク構成で確認してください。

于 2013-11-12T11:47:36.737 に答える