3

C#でログインしたユーザーのIPアドレスを取得したいです。

私は次のコードを書きました

  var ipaddress = System.Web.HttpContext.Current.Request.UserHostAddress;

しかし、ipaddress含まれています::1。完全なアドレスを取得するにはどうすればよいですか。ローカルホストでコードをテストしているだけです。iis7 をインストールしました。

4

1 に答える 1

2

::1仕様によると、実際にはループバックを指す有効なアドレスです。コンピューターのパブリック IP アドレスを取得する場合は、ドメイン名 (ローカル コンピューターを指す DNS を使用) を使用するか、URL の代わりにパブリック IP を使用する必要があります。localhost

編集

あなたのコードは適切です (そこを変更する必要はありません) が、パブリック IP アドレス (::1 または 127.0.0.1 ではない) を取得したい場合は、他のインターフェイスから http 呼び出しを行う必要があります (つまり、 DNS を ip に変換し、クエリを返します)。オフラインではできません。

これが役に立てば幸いです。申し訳ありませんが、これ以上明確にすることはできません。これは、プログラミングよりもネットワークの問題です。

于 2013-03-21T06:06:55.387 に答える