我想僅在特定位置(舊金山)向用戶顯示側邊欄廣告。我會嗅探他們的IP,然後如果它適合在San Fran IP地區創建一個If/Else來展示。如果IP!= San Fran IP位置則不顯示?僅向位於地理位置的用戶顯示內容
或者我現在不用IP來跟蹤他們的位置?
我想僅在特定位置(舊金山)向用戶顯示側邊欄廣告。我會嗅探他們的IP,然後如果它適合在San Fran IP地區創建一個If/Else來展示。如果IP!= San Fran IP位置則不顯示?僅向位於地理位置的用戶顯示內容
或者我現在不用IP來跟蹤他們的位置?
答案是whois
數據庫。在Linux上使用whois
命令,例如:
$ host www.stackoverflow.com
www.stackoverflow.com is an alias for stackoverflow.com.
stackoverflow.com has address 69.59.196.211
stackoverflow.com mail is handled by 20 alt1.aspmx.l.google.com.
stackoverflow.com mail is handled by 30 alt2.aspmx.l.google.com.
stackoverflow.com mail is handled by 40 aspmx2.googlemail.com.
stackoverflow.com mail is handled by 50 aspmx3.googlemail.com.
stackoverflow.com mail is handled by 10 aspmx.l.google.com.
$ whois 69.59.196.211
OrgName: Peak Inc.
OrgID: PEAKIN-3
Address: 1600 SW Western Suite #180
City: Corvallis
StateProv: OR
PostalCode: 97333
Country: US
...
使用第一個「縣」或「國家」字段。你會得到包含IP的網絡塊的國家。試試http://whois.domaintools.com/
唯一現實的選擇是使用用戶的IP地址。這並不總是正確的(例如對於代理或VPN用戶會出錯),但是可行。爲此,您需要一個將IP映射到國家(地理位置數據庫)的數據庫。
有許多地理定位服務可用,但大多不是免費的。看到這個答案:https://stackoverflow.com/questions/283016/know-a-good-ip-address-geolocation-service瞭解詳情。
使用exec()或popen()來運行命令。 http://hu.php.net/manual/en/function.exec.php http://hu.php.net/manual/en/function.popen.php – Notinlist
我可以將這個轉換爲一個php命令來使用在網站上? – HollerTrain
是的,但你應該實現一些數據緩存。如果使用popen()運行命令,則可以將命令的輸出作爲輸入文件處理。 – Notinlist