1. 程式人生 > >httpd服務器的真實ip獲取難題

httpd服務器的真實ip獲取難題

地址 格式 第一個 配置 技術 訪問 httpd服務 顯示 沒有

web服務器httpd中想要獲取真正的ip是個難度,我們先要在配置文件中定義錯誤日誌的格式:如下所示:

技術分享圖片

然後獲取ip

技術分享圖片

上面三條輸出日誌中,第一條是直接訪問http://172.16.213.157/img/, 此時client_ip和direct_ip內容是相同的,但在日誌中顯示client_ip為"-",這是因為“%{X-Forwarded-For}i”變量不會記錄最後一個代理服務器IP信息。

第二條日誌是經過一個代理去訪問http://172.16.213.157/img/, 其實就是通過訪問http://172.16.213.84 ,然後再讓172.16.213.84代理去訪問172.16.213.157服務器。這是經過了一層代理,可以看到,此時client_ip顯示的是客戶端真實IP地址,direct_ip顯示的是代理服務器的IP地址。

第三條日誌是經過了兩個代理去訪問http://172.16.213.157/img/, 也就是客戶端通過瀏覽器訪問http://172.16.213.84 ,然後172.16.213.84將請求發送到172.16.213.120服務器,最後,172.16.213.120服務器直接去訪問172.16.213.157服務器,這是一個二級代理的訪問日誌,可以看到,client_ip顯示了一個IP列表,分別是真實客戶端IP地址172.16.213.132、第一個代理服務器IP地址172.16.213.84,並沒有顯示最後一個代理服務器的IP地址,而direct_ip顯示的是最後一個代理服務器的IP地址。

httpd服務器的真實ip獲取難題