2013-02-25 47 views
-1

我想通過獲取他們的IP建立一個數據庫與唯一訪問者記錄到我的網站上的特定頁面。獲取互聯網上的計算機的唯一ip地址在php

下面的代碼獲取訪問者的IP:

$getip = $_SERVER['REMOTE_ADDR']; 
echo "<b>IP Address: $getip</b>"; 

但我意識到,這是非常不可靠和不準確的,如果各種互聯網用戶特定的Internet網絡上,他們都有着相同的IP地址使用不同的電腦(就像公共網吧或見下面的例子)。

例子:

XYZ公司使用特定的互聯網連接,如果XYZ公司的所有員工都通過公司的互聯網連接和XYZ公司的IP地址連接到互聯網是69.18.107.24。 如果XYZ的某些員工訪問我的頁面,上面的代碼將不會給我用戶計算機的唯一IP地址,而是我將繼續獲取公司的IP地址(69.18.107.24),這是不準確的,並且會導致應用程序欺騙將其視爲同一訪問者,而使用互聯網連接IP的訪客則不同。

如何根據用戶的計算機獲取唯一的用戶IP,而不管它們是否共享相同的Internet連接。

我不想使用PHP cookies因爲有些用戶禁用它或某些東西,有些瀏覽器不支持它。

將非常感激得到這個幫助......謝謝!

+0

共享公共地址後面的大多數計算機將具有私有地址。你真的想要那些嗎? – 2013-02-25 17:14:49

+1

是的,我不介意那些?...會appeciate的幫助..謝謝! – Sms 2013-02-25 17:20:54

+1

即使你可以(並且你不能,請參閱deceze的答案),像'192.168.0.1'這樣的私人地址可以被100,000,000臺計算機共享。它的準確度比「69.18.107.24」低幾個數量級。 – 2013-02-25 17:24:48

回答

1

無法在共享連接後獲取計算機的本地IP地址。即使你能得到它們,它們也不會是唯一的,因爲它們被重用 - 這就是NAT的整點。你會有很多人使用192.168.1.1或類似的地址。

如果您想區分共享相同IP地址的多臺計算機,則可以添加另一個因素,例如傾向於不同的user agent string

例如:

<?php 
md5(
    $_SERVER['REMOTE_ADDR'] . 
    $_SERVER['HTTP_USER_AGENT'] 
); 
// 80b567b7c7ccfbda75a9712f16ca4429 

會給你一個哈希如果兩個用戶共享同一個IP地址,並具有相同的瀏覽器和操作系統的版本,只會是相同的。

請訪問Panopticlick以瞭解關於「瀏覽器指紋識別」的更多信息。令人驚訝的是,瀏覽器在它們的配置組合中幾乎是獨一無二的。如果您使用Javascript進行客戶端分析,您可以在其中訪問顯示分辨率,安裝的插件版本和其他詳細信息,則可以輕鬆區分具有共享IP的用戶。

+0

很酷的想法...將工作,並通過獲得更多的瀏覽器信息,使其更可靠進一步提高。謝謝! – Sms 2013-02-25 17:57:01

+0

或者只是使用現有的網絡分析軟件,如[Piwik](http://piwik.org/)。 – pixelistik 2013-02-25 18:06:26

+0

當然需要注意的是,在企業環境中,代理服務器很常見,每個工作站都是克隆服務器也是很常見的,這通常會使用戶代理程序相同。 – deceze 2013-02-25 18:39:13

3

你不能。 IP地址是數據包傳送機制。沒有什麼能保證特定網絡中的IP地址對於一臺特定的機器來說是唯一的,根本就沒有這種相關性。機器在其網絡中有一個唯一的地址,但是這個地址可能不是全球唯一的(無論如何你都不能得到這個IP)。共享代理的公共IP在公共互聯網上是唯一的,但沒有規定它必須與一臺物理機器相對應。

IPs!=機器,與它一起生活。

-1

這裏是回答你的問題:

<?php 

echo "IP address".$_SERVER["REMOTE_ADDR"] 

echo "LAN Address".$_SERVER["HTTP_X_FORWARDED_FOR"] 
?> 

這不是一個肯定的方式來獲得一個獨特的訪問者。 LAN地址很容易被欺騙。 也有許多公司使用DHCP服務器,每天發佈新的LAN IP。 餅乾將是「唯一」真正的檢查方式。

+0

路由器與代理不同。局域網一般在路由器後面,他們從不公開私人地址。 (低調的選民應該很關心這個問題。) – 2013-02-25 17:26:07

+0

感謝您的幫助。就像你說的那樣,這可以很容易被欺騙,而且php cookies會是最好的選擇,但是一些瀏覽器不支持它,而一些用戶可能只是禁用或調整他們的設置反對cookie或其他東西...所以我只是stucked如何跟蹤獨特訪問者的信息... – Sms 2013-02-25 17:33:19

相關問題