假設php通過cgi/mod_php/etc等以web模式運行...
是否可以安全地假設$ _SERVER ['REMOTE_ADDR']將存在,並且更進一步說,它將包含正確的程式化(對不起,術語可能在這裏......)ip(1.1.1.1 - > 255.255.255.255?)?
這不是一個有關天氣的問題,$ _SERVER ['REMOTE_ADDR']中包含的ip將是發出請求的客戶端的真實IP地址,因爲我明白這可以通過修改出站tcp來'欺騙'包...
只是簡單:
一)將$ _ SERVER [ 'REMOTE_ADDR']如果PHP是在網絡模式下運行始終存在。 b)如果$ _SERVER ['REMOTE_ADDR']總是存在,它是否總是包含正確的語法IP?
謝謝。
好問題 - 我認爲這兩個問題的答案都是「是」,但我對[IPV6](http://en.wikipedia.org/wiki/IPV6)並不完全確定。出於好奇,你爲什麼需要知道?如果它不是*格式正確的IP,你會在哪一點遇到麻煩? –
剛剛通過已運行(運行良好)多年的代碼,但已通過以下驗證此信息: isset($ _ SERVER ....)+ ^([1-9] | [1-9] [0-9] | 1 [0-9] [0-9] | 2 [0-4] [0-9] | 25 [0-5])(\([0-9] |。[1- 9] [0-9] | 1 [0-9] [0-9] | 2 [0-4] [0-9] | 25 [0-5])){3}^ 這似乎是完全不必要 –
儘可能符合ipv6 ...在運行此代碼的盒子上禁用了ipv6,所以在那個前端沒問題(暫時)...再次感謝! –