0

現在の国を見つけるために現在のIPアドレスをテストしてみたい

だから私はこのコードを試してみてください... HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];

しかし、それは常に 127.0.0.1 を返します'

ローカルの代わりに 61.90.25.10 のように、インターネット上で自分の IP アドレスを取得できる他のコードはありますか。

4

1 に答える 1

5
HttpContext.Current.Request.UserHostAddress;

また

HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];

プロキシではなくマシンの IP アドレスを取得するには、次のコードを使用します。

HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

ただし、このアプリケーションをオフラインで使用すると、PC の IP アドレスを常に受け​​取ることになります。これは、別の言い方をすれば、ルーターの外に出ずにサーバーに接続し直して、外部 IP が使用されていないことをサーバーが認識する IP であるためです。

サーバーをオンラインで実行してアプリケーションをテストし、印刷しようとすると、次のようになります。

Response.Write("IP Address:");
Response.Write("IP: " + HttpContext.Current.Request.UserHostAddress);
Response.Write("IP1: " + HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]);
Response.Write("IP2: " + HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]);

あなたが持っているパブリックIPが表示されます.cloudflareのようなPCに到達する前にリバースプロキシを使用している場合は注意してください.HTTP_X_FORWARDED_FORそれ以外の場合はremote_addrまたはuserhostaddressを使用できます.

于 2012-05-02T12:08:53.570 に答える