導航:首頁 > 編程語言 > php獲取當前訪問者ip

php獲取當前訪問者ip

發布時間:2022-05-27 19:10:43

『壹』 php怎麼獲取訪問者IP,並將它保存在一個TXT文檔!

php獲取訪問者IP地址匯總

在很我的時候我們需要得到用戶的真實IP地址,例如,日誌記錄,地理定位,將用戶信息,網站數據分析等,其實獲取IP地址很簡單$_SERVER[\'REMOTE_ADDR\']就可以了。下面我們就來給大家匯總一下常用的幾種獲取IP地址的方法。

//方法1:

$ip = $_SERVER["REMOTE_ADDR"];

echo $ip;

//方法2:

代碼如下:

$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;

//方法3:

function getRealIp()

{

$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 getRealIp();

//方法4:

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 ;

//方法5:

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;

//方法6:

print "您的IP地址是:";

if(!empty($_SERVER["HTTP_CLIENT_IP"])){

$cip = $_SERVER["HTTP_CLIENT_IP"];

}

elseif(!empty($_SERVER["HTTP_X_FORWARDED_FOR"])){

$cip = $_SERVER["HTTP_X_FORWARDED_FOR"];

}

elseif(!empty($_SERVER["REMOTE_ADDR"])){

$cip = $_SERVER["REMOTE_ADDR"];

}

else{

$cip = "無法獲取!";

}

print $cip;

保存TEXT中

<?php

$ip = $_SERVER['REMOTE_ADDR'];
$time = gmdate("H:i:s",time()+8*3600);
$file = "123.txt" ;
$fp=fopen ("123.txt","a") ;

$txt= "$ip"."----"."$time"."\n";
fputs($fp,$txt);

?>

『貳』 用php如何獲得用戶ip地址


$ip = $_SERVER["REMOTE_ADDR"];

echo $ip;

//方法2:

$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;

//方法3:

function getRealIp()

{

$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 getRealIp();

//方法4:

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 ;

//方法5:

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

本文所述php實例可以完成獲取區域網所有用戶的電腦IP和主機名、及mac地址的功能,對於php程序設計人員有一定的參考借鑒價值。完整代碼如下:
<?php
$bIp = gethostbyname($_ENV['COMPUTERNAME']); //獲取本機的區域網IP
echo "本機IP:",$bIp,"\n";
echo "本機主機名:",gethostbyaddr($bIp),"\n\n\n"; //gethostbyaddr 函數可以根據區域網IP獲取主機名
//默認網關IP
list($ipd1,$ipd2,$ipd3) = explode('.',$bIp);
$mask = $ipd1 . "." . $ipd2 . "." . $ipd3 ;
exec('arp -a',$aIp); //獲取區域網中的其他IP
foreach( $aIp as $ipv) {
if(strpos($ipv,'介面') !== false) {//一下顯示的IP是否是當前區域網中的 而不是其他的類型 可以在cmd下試一下命令
$bool = false;
preg_match('/(?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))/',$ipv,$arr);
if(strcmp($arr[0],$bIp) == 0) {
$bool = true;
}
} else {
if($bool) {
$str = preg_replace('/\s+/', '|', $ipv);
$sArr = explode('|',$str);
if($sArr[1] == 'Internet' || empty($sArr[1])) {
continue;
}
//去除默認網關
if(strcmp($mask . ".1", $sArr[1]) == 0) {
continue;
}
//去除同網關下255的IP
if(strcmp($mask . ".255", $sArr[1]) == 0) {
continue;
}
//去除組播IP
list($cIp) = explode('.', $sArr[1]);
if($cIp >= 224 && $cIp <= 239) {
continue;
}
echo "IP地址:|",$sArr[1],"|\n";
echo "MAC地址:",$sArr[2],"\n";
echo "主機名:",gethostbyaddr($sArr[1]),"\n";
echo "\n\n";
}
}
}

『肆』 php獲取用戶ip和地區

functiongetIp(){
if(getenv("HTTP_CLIENT_IP")&&strcasecmp(getenv("HTTP_CLIENT_IP"),"unknown"))$ip=getenv("HTTP_CLIENT_IP");
elseif(getenv("HTTP_X_FORWARDED_FOR")&&strcasecmp(getenv("HTTP_X_FORWARDED_FOR"),"unknown"))$ip=getenv("HTTP_X_FORWARDED_FOR");
elseif(getenv("REMOTE_ADDR")&&strcasecmp(getenv("REMOTE_ADDR"),"unknown"))$ip=getenv("REMOTE_ADDR");
elseif(isset($_SERVER['REMOTE_ADDR'])&&$_SERVER['REMOTE_ADDR']&&strcasecmp($_SERVER['REMOTE_ADDR'],"unknown"))$ip=$_SERVER['REMOTE_ADDR'];
else$ip="unknown";
return$ip;
}
使用這個可以獲取id,至於要把ip轉換從真實地址可以使用新浪有道提供的api或者用本地的QQWry.Dat文件這個文件自己去下載,不過要經常更新

『伍』 php怎樣獲取用戶真實ip

獲取客戶端ip其實不是個簡單的事兒,因為存在IP欺騙,和代理問題,所以獲取客戶端的IP的真實性會打折扣的,不能百分百准確。但是我們還是可以盡量寫一些比較完善的獲取客戶端真正ip方法。使用php獲取IP的方法能有很多,我簡單給個例子:

<?php
functiongetip(){
$unknown='unknown';
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])&&$_SERVER['HTTP_X_FORWARDED_FOR']&&strcasecmp($_SERVER['HTTP_X_FORWARDED_FOR'],$unknown)){
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}elseif(isset($_SERVER['REMOTE_ADDR'])&&$_SERVER['REMOTE_ADDR']&&strcasecmp($_SERVER['REMOTE_ADDR'],$unknown)){
$ip=$_SERVER['REMOTE_ADDR'];
}
/**
*處理多層代理的情況
*或者使用正則方式:$ip=preg_match("/[d.]{7,15}/",$ip,$matches)?$matches[0]:$unknown;
*/
if(false!==strpos($ip,','))$ip=reset(explode(',',$ip));
return$ip;
}
?>

1、沒有使用代理的情況

REMOTE_ADDR = 客戶端IP
HTTP_X_FORWARDED_FOR = 沒數值或不顯示

2、使用透明代理的情況

REMOTE_ADDR = 最後一個代理伺服器 IP
HTTP_X_FORWARDED_FOR = 客戶端真實 IP (經過多個代理伺服器時,這個值類似:221.5.252.160, 203.98.182.163, 203.129.72.215)
這類代理伺服器還是將客戶端真實的IP發送給了訪問對象,無法達到隱藏真實身份的目的.

3、使用普通的匿名代理

REMOTE_ADDR = 最後一個代理伺服器 IP
HTTP_X_FORWARDED_FOR = 代理伺服器 IP (經過多個代理伺服器時,這個值類似:203.98.182.163, 203.98.182.163, 203.129.72.215)
這種情況下隱藏了客戶端的真實IP,但是向訪問對象透露了客戶端是使用代理伺服器訪問它們的.

4、使用欺騙性代理伺服器

REMOTE_ADDR = 代理伺服器 IP
HTTP_X_FORWARDED_FOR = 隨機的 IP(經過多個代理伺服器時,這個值類似:220.4.251.159, 203.98.182.163, 203.129.72.215)
這種情況下同樣透露了客戶端是使用了代理伺服器,但編造了一個虛假的隨機IP(220.4.251.159)代替客戶端的真實IP來欺騙它.

5、使用高級匿名代理伺服器

REMOTE_ADDR = 代理伺服器 IP
HTTP_X_FORWARDED_FOR = 沒數值或不顯示,也可能是unknown

『陸』 php中怎麼獲取訪問當前頁面電腦的IP地址

function getIP() {
$url=file_get_contents("";);
$ip=substr($url,85);
$ip=substr($ip,0,-4);
return $ip;
}
一個大神拋出的,不過需要訪問一個鏈接(總是感覺慌慌的),建議用tp自帶函數訪問不到的再用這個方法

『柒』 php怎樣獲取訪問者的ipv6地址

如果你的系統是vista,和設置ipv4地址的方法一樣。
如果是xp,打開一個dos窗口,照下面方法輸入。
C:\>netsh
netsh>interface ipv6
netsh interface ipv6>add address "本地連接" fe80:a520:1314::1
/* 設定固定的IPv6地址,「本地連接」是指你的機上建立的某個連接的名稱 */
netsh interface ipv6>add dns "本地連接" 2001:251:e101:0::2
/* 設定IPv6 DNS地址 */

『捌』 php獲取ip

$user_IP=$_SERVER["REMOTE_ADDR"];//獲取訪問者IP
$file_name=date('Y-m-d').'.txt'//以當前的日期建立txt文件
$file=fopen($file_name,"a+");//如果存在該文件就打開,如果不存在就創建
fwrite($file,$user_IP.'--'.date('Y-m-dH:i:s'));//將訪問者IP及當前時刻寫到文件最後
fclose($file);//關閉文件

//個人覺得txt文件不會很大所以一般無需一天一刪除,因為在txt里刪除一些行比起資料庫要麻煩一些。

『玖』 php 怎麼獲取訪問網站的ip

分兩種情況

1、沒有反向代理的時候,直接讀取 $_SERVER['REMOTE_ADDR'] 。

2、有反向代理的情況下,則反向代理服務需做如下設置

proxy_set_headerX-Forward-For$remote_addr;

後端php服務則直接讀取 $_SERVER['X-Forward-For'] 即可。

『拾』 php如何獲取當前登錄者的IP

$_SERVER['REMOTE_ADDR'] $_SERVER數組 列印它,裡面的REMOTE_ADDR屬性就是你想要的IP

閱讀全文

與php獲取當前訪問者ip相關的資料

熱點內容
可編程軟體分為哪兩種 瀏覽:340
格林什麼app可以看 瀏覽:697
飛盧app仙俠熱賣推薦怎麼樣 瀏覽:722
飛秋上傳文件到共享文件夾 瀏覽:691
伺服器的共享文件夾如何訪問 瀏覽:232
復盛螺桿壓縮機講解 瀏覽:332
柱在基礎插筋需要加密嗎 瀏覽:80
51單片機中斷寄存器 瀏覽:65
壓縮文件後有病毒怎麼辦 瀏覽:618
蘋果ipad怎麼登安卓王者賬號 瀏覽:862
街頭足球伺服器已滿是什麼意思 瀏覽:462
androidspeex迴音消除 瀏覽:133
加密會議什麼意思 瀏覽:34
ubuntu命令行聯網 瀏覽:7
37選7中獎概率及演算法 瀏覽:593
加密狗哪個版本好 瀏覽:619
cisco命令手冊 瀏覽:502
omp演算法c 瀏覽:129
上海浦東機場源碼 瀏覽:885
扣扣加密了忘記密碼如何打開 瀏覽:508