簡體   English   中英

不同的瀏覽器,不同的IP?

[英]Different browsers, different IPs?

我通過在MySQL數據庫中保存$_SERVER['REMOTE_ADDR']的值來保存用戶的IP地址。 問題是對於Firefox和Chrome $_SERVER['REMOTE_ADDR']::1 (表示IPv6中的 localhost),IE和Opera是127.0.0.1IPv4 )。

所以,我的問題是

  • IP版本是否依賴於瀏覽器? (我以前認為它取決於計算機)

  • 我應該在數據庫中創建兩個字段,一個用於IPv4地址,一個用於IPv6地址?

  • 我應該將所有IP統一到IPv6嗎? 我怎樣才能在PHP中實現這一點(如果可能的話)?

  1. 相當明顯 - 你的盒子支持IPv6,Firefox / Chrome只要有可用就使用IPv6,而IE和Opera則不支持(或者它是默認的默認設置)。

  2. 將地址存儲在足以容納IPv6地址的字符串中。

  3. 不,因為在一般情況下你不能。

使用PHP函數inet_pton將人類可讀的IP地址轉換為其壓縮表示形式。 然后,您可以將每個IP地址存儲在數據庫的BINARY(16)VARBINARY(16)字段中。

瀏覽器將使用任何可用的內容。 這可以是IPv4或IPv6,甚至可以在會話期間更改。 最重要的是,請記住,主機可以擁有許多IPv6地址,因此它也可能在會話期間發生變化。

簡而言之:不要太依賴REMOTE_ADDR的值:-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM