F5中源地址轉換(AutoMap)模式下后端服務器獲取客戶端真正的IP地址


F5中開啟AutoMap,並傳遞X-Forwarded-For值

開啟F5源地址轉換"Auto Map"

方式一: 在http profile中開啟X-Forwarded-For

方式二:在iRule中開啟X-Forwarded-For

when HTTP_REQUEST {
    HTTP::header insert "X-Forwarded-For" [IP::client_addr]
}

IIS 7日志中獲取訪客真實IP的解決方案

方案一:使用ISAPI篩選器獲取訪客真實IP。

1、下載插件F5XForwardedFor.dll:http://aliyuntool.oss.aliyuncs.com/F5XForwardedFor2008.zip

2、根據自己的版本將x86\Release 或者x64\Release目錄下的F5XForwardedFor.dll拷貝到某個目錄,假設為C:\F5XForwardedFor\,確保對IIS進程對該目錄有讀取權限。

3、確認您的服務器是否安裝以下兩個模塊:(“ISAPI篩選器” 及 “ISAPI和CGI限制” ):如果未安裝,請按以下步驟進行安裝:

如果未安裝,請按以下步驟進行安裝:

1、右鍵點擊 ”計算機”,選擇 ”管理:

2、選擇”角色”選項,點擊添加角色服務:

3、選擇“ISAPI 擴展 和ISAPI篩選器”,點擊下一步,進行安裝。

4、添加“ISAPI篩選器”,雙擊“ISAPI篩選器”,點擊添加:

5、填寫篩選器的名稱(沒無特殊要求),選報DLL文件路徑,點擊確定。

6、雙擊“ISAPI 和CGI限制”,點擊添加,添加內容如下:

7、修改添加的DLL,從“不允許”修改為“允許”。

8、重啟IIS服務器,等待配置生效。

 

方案二:使用IIS模塊功能獲取訪客真實IP。

1、下載F5XForwardedFor模塊:http://aliyunecs.oss.aliyuncs.com/x_forwarded_for.rar

2、根據自己的服務器版本將x86\Release 或者x64\Release目錄下的F5XFFHttpModule.dll和F5XFFHttpModule.ini拷貝到某個目錄,假設為C:\F5XForwardedFor\,確保對IIS進程對該目錄有讀取權限。

3、選擇"IIS服務器"選項,按圖所示選擇"模塊"功能。

4、雙擊“模塊”功能,點擊“配置本機模塊”。

5、在彈出框中點擊“注冊”按鈕。

6、添加下載的DLL文件,如下圖:

7、添加完成后,勾選並點擊“確定”。

8、把這兩個DLL在 “API 和CGI限制”進行添加,並改為允許。

9、重啟IIS服務器,等待配置生效。

Apache日志中獲取訪客真實IP的解決方案

修改配置文件httpd.conf

<IfModule log_config_module>
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" f5_forwarder LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
SetEnvIf X
-Forwarded-For "^.*\..*\..*\..*" is-forwarded CustomLog logs/access_log combined env=!is-forwarded CustomLog logs/access_log f5_forwarder env=is-forwarded
</IfModule>

或者添加%{X-Forwarded-For}i(推薦)

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{X-Forwarded-For}i" combined

Nginx日志中獲取訪客真實IP的解決方案

修改配置文件nginx.conf

log_format main '$remote_addr - $remote_user [$time_local] '
                '"$request" $status $body_bytes_sent "$http_referer" '
                '"$http_user_agent" "$http_x_forwarded_for"' ;

Tomcat日志中獲取訪客真實IP的解決方案

修改配置文件server.xml

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b &quot;%{Referer}i&quot; &quot;%{User-Agent}i&quot; %{X-Forwarded-For}i" />

在PHP中獲取X-Forwarded-For的值

<?php
    $headers = apache_request_headers();
    $real_client_ip = $headers["X-Forwarded-For"];
    echo  "Your IP: ",$real_client_ip;
?>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM