[解決済み] ASP.NETでユーザーのクライアントIPアドレスを取得する方法は?
質問
私たちは
Request.UserHostAddress
でIPアドレスを取得することができますが、これは通常、ユーザーのISPのIPアドレスであり、例えばリンクをクリックしたユーザーのマシンのIPアドレスとは正確ではありません。どうすれば、本当のIPアドレスを取得できますか?
例えば、Stack Overflowのユーザープロファイルでは、次のようになっています。 "最後のアカウント活動:4時間前、86.123.127.8"から。 しかし、私のマシンのIPアドレスは少し違っています。Stack Overflowはこのアドレスをどのように取得しているのでしょうか?
いくつかのウェブシステムでは、ある目的のためにIPアドレスのチェックがあります。例えば、あるIPアドレスで、24時間ごとに、ユーザーはダウンロードリンクを5回だけクリックすることができるのでしょうか?このIPアドレスは、膨大な範囲のクライアントやインターネットユーザーを抱えるISPのためではなく、ユニークであるべきです。
よく理解できましたか?
解決方法は?
他の方もおっしゃっているように、ご質問のようなことはできません。もし、あなたが解決しようとしている問題を記述すれば、もしかしたら誰かが助けてくれるかもしれません。
例
- は、ユーザーを一意に識別しようとしていますか?
- IPアドレスの代わりに、クッキーやセッションIDを使用することは可能でしょうか?
編集 サーバーに表示されるアドレスはISPのアドレスではないはずです。おっしゃるとおり、それは大きな範囲になるでしょう。ブロードバンドのホームユーザーのアドレスは、ルーターのアドレスになります。したがって、家の中のすべてのデバイスは、外からは同じに見えますが、ルーターはNATを使って、各デバイスにトラフィックが正しく送られるようにします。オフィス環境からアクセスするユーザーの場合、アドレスはすべてのユーザーに対して同じになる可能性があります。IDにIPアドレスを使用するサイトは、非常に大きな間違いを犯す危険性があります。あなたが挙げた例は良い例ですが、しばしば失敗します。例えば、私のオフィスは英国にありますが、ブレイクアウト・ポイント(インターネット上にいるように見える場所)は、私たちの主要なIT施設がある別の国にあります。このため、BBC iPlayerのような英国内のみのウェブコンテンツにアクセスすることができません。) 私の会社には、同じIPアドレスからウェブにアクセスしているように見える人が、常時、数百人、数千人いるはずです。
サーバーコードを書いているとき、表示されたIPアドレスが何を指しているのか、決して確認することはできないのです。このような状態を好むユーザーもいます。また、プロキシやVPNをわざと使って、さらに混乱させる人もいます。
StackOverflowに表示されているIPアドレスと自分のマシンアドレスが違うという場合、どうやって自分のマシンアドレスを調べているのでしょうか?もし、ローカルで
ipconfig
などは、上記の理由で異なることが予想されます。もし、外部がどう考えているかを再確認したいのであれば、以下のサイトを参照してください。
Whatismyipaddress.com/
.
この NATに関するウィキペディアのリンク は、その背景を知ることができます。
関連
-
[解決済み】バックスラッシュを含むパス文字列のエスケープシーケンスが認識されない件
-
[解決済み] 2つのリストを結合する
-
[解決済み] enumを列挙するには
-
[解決済み] intをenumにキャストするにはどうすればよいですか?
-
[解決済み] C#で文字列のエンコーディングを手動で指定せずに、一貫性のあるバイト表現を得るには?
-
[解決済み] C#でenumからint値を取得する
-
[解決済み] Microsoft JSONの日付はどのようにフォーマットするのですか?
-
[解決済み] ホストからDockerコンテナのIPアドレスを取得する方法
-
[解決済み] クライアントから危険な可能性のあるRequest.Formの値が検出された
-
[解決済み】ASP.NET MVCでクライアントのIPアドレスを取得するにはどうすればいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】プログラム実行中に1秒待つ
-
[解決済み】ここで「要求URIに一致するHTTPリソースが見つかりませんでした」となるのはなぜですか?
-
[解決済み】WebForms UnobtrusiveValidationModeは、jqueryのScriptResourceMappingを必要とする
-
[解決済み】MetadataException: 指定されたメタデータ・リソースをロードできない
-
[解決済み】HRESULTからの例外:0x800A03ECエラー
-
[解決済み] 2つのリストを結合する
-
[解決済み】インデックスが範囲外でした。コレクションパラメータname:indexのサイズより小さく、非負でなければなりません。
-
[解決済み】IntPtrとは一体何なのか?
-
[解決済み】プロセスが実行されているかどうかを知るには?
-
[解決済み】ユーザー設定値を別のユーザー設定値で設定する