php獲取客戶端地址
Ⅰ php獲取客戶端IP
php獲取客戶端IP地址方法總結
用php獲取客戶端IP地址的方法,具體代碼如下:
<?php
$iipp=$_SERVER["REMOTE_ADDR"];
echo $iipp;
?>
///////////////////////////////////////////////
<?php
$user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
$user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];
echo $user_IP;
?>
///////////////////////////////////////////////
<?php
function get_real_ip(){
$ip=false;
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
$ip = $_SERVER["HTTP_CLIENT_IP"];
}
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }
for ($i = 0; $i < count($ips); $i++) {
if (!eregi ("^(10|172.16|192.168).", $ips[$i])) {
$ip = $ips[$i];
break;
}
}
}
return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}
echo get_real_ip();
?>
///////////////////////////////////////////////
php獲取ip的演算法:
<?php
if ($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"])
{
$ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
}
elseif ($HTTP_SERVER_VARS["HTTP_CLIENT_IP"])
{
$ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
}
elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"])
{
$ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
}
elseif (getenv("HTTP_X_FORWARDED_FOR"))
{
$ip = getenv("HTTP_X_FORWARDED_FOR");
}
elseif (getenv("HTTP_CLIENT_IP"))
{
$ip = getenv("HTTP_CLIENT_IP");
}
elseif (getenv("REMOTE_ADDR"))
{
$ip = getenv("REMOTE_ADDR");
}
else
{
$ip = "Unknown";
}
echo "你的IP:".$ip ;
?>
///////////////////////////////////////////////
<?php
if(getenv('HTTP_CLIENT_IP')) {
$onlineip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR')) {
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR')) {
$onlineip = getenv('REMOTE_ADDR');
} else {
$onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
}
echo $onlineip;
?>
Ⅱ php獲得客戶端的ip和埠號
最簡單的方法
$ip = $_server["remote_addr"];
echo $ip;
最實用獲取用戶ip地址代碼
function get_real_ip() {
$ip=false;
if(!empty($_server["http_client_ip"]))
{
$ip = $_server["http_client_ip"];
}
if (!empty($_server['http_x_forwarded_for']))
{
$ips教程 = explode (", ", $_server['http_x_forwarded_for']);
if ($ip) {
array_unshift($ips, $ip);
$ip = false;
}
for ($i = 0; $i < count($ips); $i++)
{
if (!eregi ("^(10|172.16|192.168).", $ips[$i]))
{
$ip = $ips[$i];
break;
}
}
}
return ($ip ? $ip : $_server['remote_addr']);
}
echo get_real_ip();
獲取ip地址與埠號
$ip =$_server["remote_addr"];
$port = $_server['remote_port'];
echo $ip.$port;
有一點意思
if(getenv('http_client_ip'))
{
$onlineip = getenv('http_client_ip');
}
elseif(getenv('http_x_forwarded_for'))
{
$onlineip = getenv('http_x_forwarded_for');
}
elseif(getenv('remote_addr'))
{
$onlineip = getenv('remote_addr');
}
else
{
$onlineip = $http_server_vars['remote_addr'];
}
echo $onlineip;
echo "
";
利用qq介面
function get_ip_place(){
$ip=file_get_contents("http://fw.qq.com/ipaddress");
$ip=str_replace('"',' ',$ip);
$ip2=explode("(",$ip);
$a=substr($ip2[1],0,-2);
$b=explode(",",$a);
return $b;
}
$ip=get_ip_place();
print_r($ip);
Ⅲ php獲取客戶端IP地址的幾種方法
//php獲取ip的演算法
if ($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"])
{
$ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
}
elseif ($HTTP_SERVER_VARS["HTTP_CLIENT_IP"])
{
$ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
}
elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"])
{
$ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
}
elseif (getenv("HTTP_X_FORWARDED_FOR"))
{
$ip = getenv("HTTP_X_FORWARDED_FOR");
}
elseif (getenv("HTTP_CLIENT_IP"))
{
$ip = getenv("HTTP_CLIENT_IP");
}
elseif (getenv("REMOTE_ADDR"))
{
$ip = getenv("REMOTE_ADDR");
}
else
{
$ip = "Unknown";
}
echo "你的IP:".$ip ;
?>
Ⅳ 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如何獲取到客戶端mac的地址
MAC地址是不可以的,瀏覽器就攔擊了,那個只是區域網內使用的。也就是許多通過路由器的廣域網用戶,根本就不把MAC地址傳給WEB伺服器,PHP程序是不可能獲得的。
你要限制用戶,只有使用證書,登錄賬戶等方法實現。
Ⅵ 如何使用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 />';