X-Forwarded-For
Web アプリで対処するには以下のような機能が必要。
疑似コード:
public static string getIPAddress(Page page) { string xff = page.Request.ServerVariables["X_FORWARDED_FOR"]; if (xff == null) { return page.Request.ServerVariables["REMOTE_ADDR"]; } return [X_FORWARDED_FOR から適切な Client IP アドレスを抽出する]; }
ただし X_FORWARDED_FOR は詐称が可能なので信頼できる Proxy が付与した値のみを使うべき。
参考:
- c# - X-Forwarded-For - Stack Overflow
- How can I get the client's IP address in ASP.Net MVC? - Stack Overflow
- mod_extract_forwardedと多段 Proxy - ブログ - ワルブリックス株式会社
- X-Forwarded-For Log Filter for Windows Servers
- IISで X-Forward-For ISAPI Filter を使う
- IISで詳細ログ機能を用いてX-Forwarded-Forヘッダーの値をログに書き込む | Developers.IO
- kakakikikekeのブログ: 【apache】X-Forwarded-Forの設定方法と使い方(LocationごとにIP制限)