獲取客戶端ip

2021-08-08 04:56:30 字數 2280 閱讀 9569

1.統計訪問者ip位址

2.設定黑名單,黑名單的使用者不可以訪問聊天室。

內容提要:這種情況下同樣透露了客戶端是使用了**伺服器

,但編造了乙個虛假的隨機ip(

220.4.251.159

)代替客戶端的真實

ip來欺騙它……

獲取客戶端

ip其實不是個簡單的活兒

,因為存在

ip欺騙

,和**問題

,所以獲取客戶端的

ip的真實性會打折扣的

,不能百分百準確

.但是我們還是盡量找乙個比較完善的獲取客戶端真正

ip方法.使用

php獲取

ip的方法能找到很多.

getip

function

getip()  

現在需要對這段**進行解釋

,這裡用到了兩個函式

,getenv()

和strcasecmp(),

前乙個函式獲取得系統的環境變數

,如果能取到值

,則返回該值

,不能則返回

false.

$_server

是伺服器超級全域性變數陣列,用

$_server['remote_addr']

同樣可以獲取到客戶端的

ip位址

.二者的區別在於

,getenv

不支援iis

的isapi

方式執行的

php.

strcasecmp(string1,string2)

字串函式的用法是把

string1

和string2

進行比較

,如果相等返回

0,如果

string1

大於string2,

返回大於0的數

,小於則返回小於0的數

. 函式先使用客戶

ip,如果不成立嘗試用**的方法

,如果不行

,再使用

remote_addr.

還看到過乙個檢測

ip更詳細的方法

,考慮了

ip的欺騙

,和多重****

.方法相類似.

remote_addr =

客戶端ip

沒數值或不顯示

remote_addr =

最後乙個**伺服器

客戶端真實

ip (經過多個**伺服器時,這個值類似:

221.5.252.160,203.98.182.163, 203.129.72.215

)這類**伺服器還是將客戶端真實的

ip傳送給了訪問物件

,無法達到隱藏真實身份的目的.

remote_addr =

最後乙個**伺服器

**伺服器

ip (經過多個**伺服器時,這個值類似:

203.98.182.163,203.98.182.163, 203.129.72.215

)這種情況下隱藏了客戶端的真實

ip,但是向訪問物件透露了客戶端是使用**伺服器訪問它們的.

remote_addr =

**伺服器

隨機的ip

(經過多個**伺服器時

,這個值類似:

220.4.251.159, 203.98.182.163,203.129.72.215

)這種情況下同樣透露了客戶端是使用了**伺服器

,但編造了乙個虛假的隨機ip(

220.4.251.159

)代替客戶端的真實

ip來欺騙它.

remote_addr =

**伺服器

沒數值或不顯示

無論是remote_addr

還是http_forwarded_for

,這些頭訊息未必能夠取得到

,因為不同的瀏覽器不同的網路裝置可能傳送不同的

ip頭訊息.因此

php使用

獲取的值可能是空值也可能是

「unknown」值.

獲取客戶端IP位址

title generating test data author wufeng4552 date 2009 09 23 10 34 02 功能 獲客戶 ip位址 if object id getclientip isnot null drop proc getclientip go create ...

客戶端獲取IP位址

string ip request.getheader x forwarded for string regex 2 0 4 d 25 0 5 01 d d?2 0 4 d 25 0 5 01 d d?if ip null ip.length 0 ip.equalsignorecase locali...

Java獲取客戶端IP

在開發工作中,我們常常需要獲取客戶端的ip。一般獲取客戶端的ip位址的方法是 request.getremoteaddr 但是在通過了apache,squid等反向 軟體就不能獲取到客戶端的真實ip位址了。原因 由於在客戶端和服務之間增加了中間 因此伺服器無法直接拿到客戶端的ip,伺服器端應用也無法...