(轉載)你的訪客來自哪些國家、哪些城市?

edited 十月 2013 in 其他
出處: http://www.hkpug.net/node/41

互聯網把全世界的網民聯繫起來,從地球的一端到達另一端只是數以秒計的時間,似乎大家所處的地理位置在現代的網絡世界已經沒有意義。但實際上我們仍有很多機會希望知道我們的訪客來自哪兒:

* 中、港、台三地的網友誰對我的網站更有興趣?
* 來自北京的訪客多還是台北的訪客多?
* 我應該把這位訪客重定向到哪一個鏡象網站?
* 最近那個該死的黑客是哪個國家的人?
* 不知這位妹妹是不是華人呢?
* ......

要找出訪客的實際地理位置,不外乎以下幾個方法:

1. 直接問訪客。弄一個下拉選單給訪客自行剔選,夠簡單了,但是訪客輸入的資料可靠嗎?拼法相似的名稱固然容易令人搞錯,大部分人更可能漫不經心地隨便挑選一個充數,反正答得是否正確你也沒法查證。

2. 使用瀏覽器的資料。瀏覽器一般都會把訪客的偏好語言送到伺服器,例如 zh-tw、zh-cn、en-us、en-gb 等,語言名稱的最後兩個英文字母便是國家的代號,很多預先安裝了操作系統的電腦在出售前均已經把偏好語言設定好,毋需用家費心。但是問題仍未完全解決,首先並非所有偏好語言均有國家代號綴尾,此外,一個人的偏好語言與他所處身的國家並無絕對關係,台灣人可以在美國上網並且把偏好語言設定為 zh-tw,而且偏好語言很容易在瀏覽器上更改,故此這個方法仍是不能滿意。

3. 領域名稱反查。利用領域名稱反查技術,把訪客的 IP 地址翻譯成領域名稱,擷取名稱的最後部份便是國家代號了,例如 IP 是 140.112.8.228,調用 Pear 中的 Net::DNS 便可以反查出領域名稱是 eddbB.cc.ntu.edu.tw,這樣便知道這位訪客來自台灣。IP 地址應該不會出錯了吧?反查的結果所以也準確了吧?不!首先在網絡上有很多以 .net、.com、.org、.tv、.biz 等等結束的領域名稱,我們根本無法知道它們的所在地。此外,一個 IP 地址可能對應到很多個領域名稱,這種情況下我們無法知道訪客從哪裡來。

4. 使用 GeoIP 的數據庫。有一間叫作 MaxMind 的公司製作了一個從 IP 對應地理位置的數據庫,國家層面的準確率可達 99%,城市層面的準確率亦達 95%,在美國境內方圓 25 英里的準確率達到 80%,在其他國家則低得多。雖然這是一項收費服務,但他們提供了一個準確率輕微低一點的免費版本 GeoLite ,可以用來反查訪客所在的國家和城市,支援多種語言包括 PHP,安裝過程只需把數據庫及程式庫(開放原始碼)抄到網頁的目錄中讓 PHP 程式調用即可。使用這個版本可以查出 php-mag.net(網上知名 PHP 收費雜誌)原來在德國,hkpug.net(香港 PHP 用家社區)和 twpug.net(Taiwan PHP User Group)都不在自己的國家,兩者的網站都在美國.......

知道了訪客來自何方,我們可以把他們分流到適當的鏡象網站,也可以在網頁上顯示當地的日期時間,或者當地的天氣資料,分析訪客的分布統計資料當然也是重要的應用之一。

你從甚麼地方來?以後再不是迷團了。

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=1701

評論

  • edited 六月 2006
    當地的民情也會影響到統計的準確度,以大陸朋友為例,許多人習慣使用代理伺服器來避開封鎖,或者有時是電腦中毒而主動掃描網路產生記錄;如果是要作在地化的服務,自動偵測之外還是保留些能夠手動調整的設定比較好。 :)
  • edited 六月 2006
    kiang 寫道:
    當地的民情也會影響到統計的準確度,以大陸朋友為例,許多人習慣使用代理伺服器來避開封鎖,或者有時是電腦中毒而主動掃描網路產生記錄;如果是要作在地化的服務,自動偵測之外還是保留些能夠手動調整的設定比較好。 :)
    說得很對!在 MaxMind 的 FAQ 中也表示對 AOL 的用戶感到無能為力,正是基於相似的原因,例如全美國的 AOL 用戶看起來都是來自維珍尼亞州,法國的 AOL 用戶全都來自英國 :)

    Google 在六四期間被全面封殺,對於中國大陸的網友,我們只能寄上祝福 :-x
Sign In or Register to comment.