2013-09-26 48 views
0

我有一臺通過Fortigate 40C連接到互聯網的服務器。當我的php代碼調用$_SERVER['REMOTE_ADDR']時,它將返回路由器(fortigate)的IP地址,而不是訪問php腳本的遠程IP。

這是爲什麼?

+1

很可能原始IP仍在請求中。看看你能否找到像'X_FORWARDED_FOR'這樣的X_頭。 – Halcyon

回答

0

Fortigate在策略上有一個「啓用NAT」的選項,這並不意味着轉換地址(無論如何都是這樣),但意味着它會改變一些數據包,用網關IP替換遠程IP 。

確保「啓用NAT」被禁用,並且$_SERVER['REMOTE_ADDR']將按預期工作。

+0

@Simon_eQ我發佈這個問題的原因是我沒有在stackoverflow上找到這個問題的答案,並認爲它會對追隨我的人有用。 – derekdreery

+0

這確實對我有幫助:)感謝您提出並回答您自己的問題! – Roeland

相關問題