2013-04-26 115 views
0

這是行不通的,它沒有把我的錯誤過於爲什麼我的環回地址是:: 1而不是127.0.0.1?

if($_SERVER['REMOTE_ADDR'] == '127.0.0.1') { 
    //My code 
} 
//NOTE: echo $_SERVER['REMOTE_ADDR'] is "::1" 
+2

嘗試'回聲$ _SERVER [ 'REMOTE_ADDR'];'。它輸出什麼? – 2013-04-26 07:41:03

+0

@STTLCU它呼應的':: 1',但是爲什麼呢? – 2013-04-26 07:41:45

+0

你使用的是ipv6嗎? – Tan 2013-04-26 07:43:45

回答

2

一切看起來罰款在你的代碼,試試這個,看看,如果是IPv6的,這應該工作

if($_SERVER['REMOTE_ADDR'] == '::1') { 
    //Your Code 
} 
+0

這工作,但有更多的參與,爲什麼':: 1' – 2013-04-26 07:42:41

+0

@AcidicCloud的http:// en.wikipedia.org/wiki/Localhost – 2013-04-26 07:43:46

+2

認真? -1?哈哈哈 – 2013-04-26 07:44:29

1

的你得到:: 1的原因是你正在使用ipv6。關閉它或在您的語句中同時具有127.0.0.1和:: 1。

1
if($_SERVER['REMOTE_ADDR'] == '::1' || $_SERVER['REMOTE_ADDR'] == '127.0.0.1') { 
    //Your Code 
} 

即使您遷移到另一臺服務器,這應該使其安全。

如前所述,服務器配置了IPv6地址來處理它和:: 1的IPv6相當於127.0.0.1

0

的,因爲你在本地主機是:

if($_SERVER['REMOTE_ADDR'] == '127.0.0.1' || $_SERVER['REMOTE_ADDR'] == '::1') { 
    //Your code 
} 
相關問題