PHP 獲取 ip 位址

2021-08-28 02:53:39 字數 2410 閱讀 2062

remote_addr 是你的客戶端跟你的伺服器「握手」時候的ip。如果使用了「匿名**」,remote_addr將顯示**伺服器的ip。 

http_client_ip 是**伺服器傳送的http頭。如果是「超級匿名**」,則返回none值。同樣,remote_addr也會被替換為這個**伺服器的ip。

$_server['remote_addr']; //訪問端(有可能是使用者,有可能是**的)ip

$_server['http_client_ip']; //**端的(有可能存在,可偽造)

$_server['http_x_forwarded_for']; //使用者是在哪個ip使用的**(有可能存在,也可以偽造)

//thinkphp框架自帶原生的獲取ip位址

// ip位址合法驗證

$long = sprintf("%u",ip2long($ip));

$ip = $long ? array($ip, $long) : array('0.0.0.0', 0);

return $ip[$type];

}

//thinkphp框架下,正確獲取ip位址

// ip位址合法驗證

$long = sprintf("%u",ip2long($ip));

$ip = $long ? array($ip, $long) : array('0.0.0.0', 0);

return $ip[$type];

}

關於**伺服器,ip隱藏偽裝的問題,在網上看到乙個博文寫的很詳細,分享一下

1、沒有使用**伺服器的情況:

remote_addr = 您的 ip

http_via = 沒數值或不顯示

http_x_forwarded_for = 沒數值或不顯示

2、使用透明**伺服器的情況:transparent proxies

remote_addr = 最後乙個**伺服器 ip 

http_via = **伺服器 ip

http_x_forwarded_for = 您的真實 ip ,經過多個**伺服器時,這個值類似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

這類**伺服器還是將您的資訊**給您的訪問物件,無法達到隱藏真實身份的目的。

3、使用普通匿名**伺服器的情況:anonymous proxies

remote_addr = 最後乙個**伺服器 ip 

http_via = **伺服器 ip

http_x_forwarded_for = **伺服器 ip ,經過多個**伺服器時,這個值類似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

隱藏了您的真實ip,但是向訪問物件透露了您是使用**伺服器訪問他們的。

4、使用欺騙性**伺服器的情況:distorting proxies

remote_addr = **伺服器 ip 

http_via = **伺服器 ip 

http_x_forwarded_for = 隨機的 ip ,經過多個**伺服器時,這個值類似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

告訴了訪問物件您使用了**伺服器,但編造了乙個虛假的隨機ip代替您的真實ip欺騙它。

5、使用高匿名**伺服器的情況:high anonymity proxies (elite proxies)

remote_addr = **伺服器 ip

http_via = 沒數值或不顯示

http_x_forwarded_for = 沒數值或不顯示 ,經過多個**伺服器時,這個值類似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

完全用**伺服器的資訊替代了您的所有資訊,就象您就是完全使用那台**伺服器直接訪問物件。

PHP獲取各個IP位址

主要有兩種 ip與客戶端ip 客戶端 沒有 的話是真實的ip 有 的話 是最後乙個 伺服器的ip ipone server remote addr var dump 最後乙個 ip ipone 因為沒有使用多個 127.0.0.1表示監視本地 所以不會顯示數值 var dump 客戶端真實ip ip...

PHP獲取使用者IP位址

開發中時常需要獲取到來訪使用者的ip 位址,在php中主要通過超全域性變數 server裡邊的值來獲取,方法如下 獲取使用者ip位址 param integer type 返回型別 0 返回ip位址 1 返回ipv4位址數字 param boolean adv 是否進行高階模式獲取 有可能被偽裝 i...

php 根據網域名稱獲取ip位址

ip2long需要bigint來儲存,而且在32位和64位系統中儲存方式還有區別 而儲存成字串,只需要char20即可。那麼,ip2long好處在哪?是不是有利於分割槽,比如杭州段是從多少開始到多少結束,如果用ip位址的話可以分段比較複雜比如做投票專案的時候,將ip位址處理後用int型別儲存,再建立...