php獲取客戶端ip

2022-03-06 08:56:18 字數 1473 閱讀 7681

獲取ip函式如下:

if($match && iptype($match[0]) == 'internet網位址')else

}//網際網路允許使用ip位址

function iptype($ip)

網上常見獲取ip函式如下:

}』remote_addr』 ,』http_x_forwarded_for』,』http_client_ip』之間的區別?1.』remote_addr』 是遠端ip,預設來自tcp 連線是,客戶端的ip。可以說,它最準確,確定是,只會得到直接連伺服器客戶端ip。如果對方通過**伺服器上網,就發現。獲取到的是**伺服器ip了。

如:a->b(proxy)->c ,如果c 通過』remote_addr』 ,只能獲取到b的ip,獲取不到a的ip了。

2.』http_x_forwarded_for』,』http_client_ip』 為了能在大型網路中,獲取到最原始使用者ip,或者**ip位址。對http協議進行擴充套件。定義了實體頭。

http_x_forwarded_for = clientip,proxy1,proxy2 所有ip用」,」分割。 http_client_ip 在高階匿名**中,這個代表了**伺服器ip。既然是http協議擴充套件乙個實體頭,並且這個值對於傳入端是信任的,信任傳入方按照規則格式輸入的。以下以x_forword_for例子加以說明,正常情況下,這個值變化過程。

風險點所在:

這些變數,來自http請求的:x-forword-for欄位,以及client-ip欄位。 正常**伺服器,當然會按rfc規範來傳入這些值。但是,當乙個使用者直接構造該x-forword-for值,傳送給使用者,這樣就好比就直接有乙個可以寫入任意值的字段。並且伺服器直接讀取,或者寫入資料庫,或者做顯示。它將帶來危險性,跟一般對入輸入沒有做任何過濾檢測,之間運算元據源結果一樣。

對於上面getip函式:

除了客戶端可以任意偽造ip,並且可以傳入任意格式ip。 這樣結果會帶來2大問題,其一,如果你設定某個頁面,做ip限制。 對方可以容易修改ip不斷請求該頁面。 其二,這類資料你如果直接使用,將帶來sql註冊,跨站攻擊等漏洞。至於其一,可以在業務上面做限制,最好不採用ip限制。 對於其二,這類可以帶來巨大網路風險。我們必須加以糾正。

參考:

PHP獲取客戶端IP

在php獲取客戶端ip中常使用 server remote addr 但如果客戶端是使用 伺服器來訪問,那取到的是 伺服器的 ip 位址,而不是真正的客戶端 ip 位址。要想透過 伺服器取得客戶端的真實 ip 位址,就要使用 server http x forwarded for 來讀取。但只有客戶...

PHP獲取客戶端IP

在這篇文章中,我們將會為大家詳細介紹php獲取客戶端ip的幾種情況分析。我們在使用php獲取的ip可能是客戶端真實的ip,也可能是 伺服器的ip,也有可能根本取不到任何ip值。在php獲取客戶端ip中常使用 server remote addr 但如果客戶端是使用 伺服器來訪問,那取到的是 伺服器的...

php獲取客戶端IP

方法1 function get real ip 多重 伺服器下的客戶端真實ip位址 可能偽造 如果沒有使用 此字段為空 客戶端ip 或 最後乙個 伺服器 ip return ip ip server remote addr 方法2 獲取客戶端ip位址 param integer type 返回型別...