當前位置:首頁 » 編程語言 » 獲取訪問ipphp

獲取訪問ipphp

發布時間: 2022-04-29 07:15:16

php 怎麼獲取內網IP

ip地址分 IPv4和IPV6兩個版本。

127.0.0.1或者192.168.0.1之類的,屬於IPV4的格式

127.0.0.1轉換為IPv6就是 ::1

IPv6具體的格式寫法,你搜索一下了解一下。

另外 ,服務端獲取ip地址,是相對的。比如你在區域網內建一個伺服器,在程序里獲取的ip地址,就是客戶端在區域網的ip ,一般是類似 192.168.0.101 之類的,大公司的話可能 10.x.x.x

區域網的ip地址,可以直接在網路適配器上看到

而在inter網,也就是大網路上,服務端獲取的ip地址,是你的連網設備獲取到的公網ip ,一般一個區域網內的主機,相對於網際網路上的伺服器,顯示的都是公網地址。

公網ip沒有在本機電腦上直接顯示。會顯示在路由或者連網設備上。也可以通過網路搜索 ip地址,會顯示你的公網ip

所以,假設一個區域網內,有兩台電腦同時訪問一個網上的伺服器,伺服器是沒辦法給兩台電腦區分開ip地址的,顯示的是一樣的。只是可能得到的設備信息不一樣(如:瀏覽器的useragent)

㈡ PHP如何獲取伺服器外網IP

1.關於外網IP變更問題,如果你手頭上有 IP資源,建議綁定。就是你申請的靜態IP。
2.如果自己沒有靜態IP,那麼如果你有域名,可以通過 花生殼這些軟體,綁定自己的伺服器。這樣就算IP怎樣變化,直接訪問域名就可以了。
2.1.花生殼帶有一些二級域名的,功能也差不多。
-----------------------------------

另外,可以寫一個功能cURL,讓你的伺服器定期訪問一個站點(私有站點,要許可權進入),這個站點你可以獲取訪問者的IP。

㈢ php怎樣獲取用戶訪問靜態頁的ip地址呢

如果希望獲取IP,可以向伺服器發送一個ajax請求,該請求包中會包含客戶端的相關信息,當然也包括IP。

㈣ php如何在用戶訪問首頁時獲取用戶ip

php //方法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;

㈤ php如何查詢來訪的真實IP地址,埠映射後

理論上不可能獲得真實的客戶IP地址,只能獲得最後一次路由器、或者代理伺服器的IP地址。典型的情況是對方也在區域網、或者防火牆的後面,我們是不可能獲得他真實的IP地址的,其實獲取來也沒有,一般是192.168.1.2這樣的私有地址,甚至很可能所有的客戶機都是這個網段。

㈥ 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地址

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

㈧ 利用php怎麼獲取用戶ip

php獲取用戶真實ip的方法:
方法1:
//獲取REMOTE_ADDR屬性,直接可以得到ip
$ip = $_SERVER["REMOTE_ADDR"];
echo $ip;
方法2:
//從Server中獲取HTTP_VIA,如果獲取到就用HTTP_X_FORWARDED_FOR的值替換,如果獲取不到就取REMOTE_ADDR的值。
$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; //初始化ip為false
if(!empty($_SERVER["HTTP_CLIENT_IP"])){ //如果HTTP_CLIENT_IP不為空
$ip = $_SERVER["HTTP_CLIENT_IP"]; //獲取HTTP_CLIENT_IP的值
}
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { //如果HTTP_X_FORWARDED_FOR不為空
$ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
//把HTTP_X_FORWARDED_FOR的值用,分割後存放數組ips
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]; //獲得真實ip
break;
}
}
}
return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}
echo getRealIp();

㈨ 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

熱點內容
手機版我的世界怎麼輸入伺服器ip 發布:2025-07-14 16:25:21 瀏覽:721
pythonsysstdout 發布:2025-07-14 16:15:29 瀏覽:196
ef資料庫更新模型 發布:2025-07-14 16:14:05 瀏覽:411
少兒編程教育平台 發布:2025-07-14 16:13:54 瀏覽:301
相關存儲格式圖片 發布:2025-07-14 16:13:50 瀏覽:144
搭建酒店伺服器 發布:2025-07-14 16:13:49 瀏覽:133
下載pythonmysqldb 發布:2025-07-14 16:05:43 瀏覽:977
生化危機5配置要求怎麼樣 發布:2025-07-14 15:38:56 瀏覽:301
蘋果電話為什麼打不開密碼 發布:2025-07-14 15:33:45 瀏覽:45
安卓如何取消短消息通知 發布:2025-07-14 15:30:54 瀏覽:373