『壹』 php獲取IP地址的三個函數區別
以下資料供參考:
1、REMOTE_ADDR 瀏覽當前頁面的用戶計算機的ip地址
2、HTTP_X_FORWARDED_FOR 瀏覽當前頁面的用戶計算機的網關
3.HTTP_CLIENT_IP 客戶端的ip
在PHP 中使用 REMOTE_ADDR 來取得客戶端的 IP 地址,但如果客戶端是使用代理伺服器來訪問,那取到的就是代理伺服器的 IP 地址,而不是真正的客戶端 IP 地址。
要想透過代理伺服器取得客戶端的真實 IP 地址,就要使用 HTTP_X_FORWARDED_FOR 來讀取。
不過要注意的事,並不是每個代理伺服器都能用 HTTP_X_FORWARDED_FOR 來讀取客戶端的真實 IP,有些用此方法讀取到的仍然是代理伺服器的 IP。
還有一點需要注意的是:如果客戶端沒有通過代理伺服器來訪問,那麼HTTP_X_FORWARDED_FOR 取到的值將是空的。
『貳』 php注冊系統咋么獲得用戶ip
只需要一行代碼即可!~~
$ip=$_SERVER['REMOTE_ADDR']; // 獲取訪客的 IP
『叄』 php如何獲取伺服器外網的ip
function real_server_ip(){
static $serverip = NULL;
if ($serverip !== NULL){
return $serverip;
}
if (isset($_SERVER)){
if (isset($_SERVER['SERVER_ADDR'])){
$serverip = $_SERVER['SERVER_ADDR'];
}
else{
$serverip = '0.0.0.0';
}
}
else{
$serverip = getenv('SERVER_ADDR');
}
return $serverip;
}
『肆』 如何用 PHP 來獲取客戶端 IP 和 伺服器的 IP
來看看代碼:
echo"(1)瀏覽當前頁面的用戶的IP地址為:";
echo$_SERVER['REMOTE_ADDR'];
echo"
";
echo"(2)瀏覽當前頁面的用戶的IP地址為:";
echogetenv('REMOTE_ADDR');
echo"
";
echo"主機www..com的IP地址為:";
echogethostbyname(www..com);
2
它的輸出結果為:
(1)瀏覽當前頁面的用戶的IP地址為:127.0.0.1
(2)瀏覽當前頁面的用戶的IP地址為:127.0.0.1
主機www..com的IP地址為:61.135.169.105
3
關於獲取客戶端的IP地址,有倆方法:
第一個是使用:
$_SERVER['REMOTE_ADDR']
它正在瀏覽當前頁面用戶的IP地址,這里的輸出結果為127.0.0.1,因為這是在本地測試,輸出的是我本地的環路地址。
第倆個是使用:
getenv('REMOTE_ADDR')
這里使用了函數getenv:(得到各種環境變數的值),返回值:,orFALSEonanerror(失敗的話返回FALSE).
『伍』 如何使用PHP獲取客戶端及伺服器端IP的封裝類
本文實例講述了PHP獲取客戶端及伺服器端IP的封裝類。分享給大家供大家參考,具體如下:
客戶端IP相關的變數:
1. $_SERVER['REMOTE_ADDR']; 客戶端IP,有可能是用戶的IP,也有可能是代理的IP。
2. $_SERVER['HTTP_CLIENT_IP']; 代理端的IP,可能存在,可偽造。
3. $_SERVER['HTTP_X_FORWARDED_FOR']; 用戶是在哪個IP使用的代理,可能存在,可以偽造。
伺服器端IP相關的變數:
1. $_SERVER["SERVER_NAME"],需要使用函數gethostbyname()獲得。這個變數無論在伺服器端還是客戶端均能正確顯示。
2. $_SERVER["SERVER_ADDR"],在伺服器端測試:127.0.0.1(這個與httpd.conf中BindAddress的設置值相關)。在客戶端測試結果正確。
類如下:
class getIP{
function clientIP(){
$cIP = getenv('REMOTE_ADDR');
$cIP1 = getenv('HTTP_X_FORWARDED_FOR');
$cIP2 = getenv('HTTP_CLIENT_IP');
$cIP1 ? $cIP = $cIP1 : null;
$cIP2 ? $cIP = $cIP2 : null;
return $cIP;
}
function serverIP(){
return gethostbyname($_SERVER["SERVER_NAME"]);
}
}
$getIP = new getIP();
$clientIp = getIP::clientIP();
$serverIp = getIP::serverIP();
echo 'Client IP is ',$clientIp,'<br />';
echo 'Server IP is ',$serverIp,'<br />';