我有一個要求,我需要將用戶的國家存儲在數據庫中。我可以保留一個複選框或組合框,但有沒有辦法獲取國家信息,而無需用戶輸入?有沒有辦法從用戶訪問網站的地方獲取國家名?有沒有辦法從用戶訪問網站的地方獲取國家名?
0
A
回答
0
是的,有一種方法可以做到這一點,但您需要做一些工作。當用戶訪問你的網站,你可以用得到他/她的IP地址:
String ip = (request.getHeader("X_FORWARDED_FOR") == null ? request.getRemoteAddr() : request.getHeader("X_FORWARDED_FOR"));
然後你就可以將此IP地址轉換成它的二進制形式:
long binIp = ipToLong(ip);
與ipToLong
功能是這樣的:
public long ipToLong(String addr) {
String[] addrArray = addr.split("\\.");
return Long.parseLong(addrArray[0]) << 24 +
Long.parseLong(addrArray[1]) << 16 +
Long.parseLong(addrArray[2]) << 8 +
Long.parseLong(addrArray[3]);
}
最後使用IP地址數據庫查找該值屬於哪個國家。有幾個提供商。我們從software77獲得 - 它是免費的 - 並存儲在本地數據庫中,每月更新一次本地數據庫。
的幾個注意事項:
- 有時候地址不會被設定,所以你需要有一些合理的默認值。
- 有時地址會被欺騙,因此不能表示真正的IP地址(格式),所以您需要有合理的異常處理。
- 有時地址將來自保留的範圍(例如192.168/16),因此您需要再次設置合理的默認值。
+0
非常感謝...我會嘗試一下,讓你知道是否還有其他疑問。謝謝您的幫助 – user1643087
0
這就是IP定位器服務。請參閱示例代碼和應用程序@http://www.geobytes.com/iplocator.htm
儘管源代碼使用PHP,但您可以嘗試使用java編寫代碼。
相關問題
- 1. 有沒有辦法阻止按國家訪問我的網站?
- 2. 有沒有辦法從客戶端確定訪客國家?
- 3. 有沒有更好的辦法來處理國家/地區和國家/地區的國家名單?
- 4. 有沒有辦法獲得域名的網站地圖?
- 5. Android:有沒有辦法讓國家名稱獲得時區?
- 6. DBpedia,獲取具有經緯度的網站的國家/地區
- 7. 有沒有辦法使用facebook圖形API獲取用戶的祖國名字?
- 8. 有沒有什麼辦法讓國家訂婚用戶
- 9. 從國家/地區代碼獲取國家/地區名稱
- 10. 有沒有辦法從國家或時區獲取區域設置?
- 11. 有沒有辦法讓特定國家/地區的所有地點(經緯度)?
- 12. 從國家代碼中獲取國家/地區名稱
- 13. 限制網站訪問特定國家
- 14. 從python獲取沒有訪問令牌的facebook用戶名
- 15. 從網站獲取國家/地區ISO代碼
- 16. Firebase - 有沒有辦法設置來查看我的用戶來自美國的哪些國家/地區?
- 17. 有沒有辦法從亞馬遜網站訪問我的剪報kindle?
- 18. 獲取用戶的國家
- 19. 有沒有API讓所有國家和通過國家獲得所有國家/地區,並再次通過國家/地區獲得所有城市
- 20. 如何從網站訪問者獲取所有客戶信息?
- 21. 如何從angularjs中的國家/地區獲取國家/地區名稱
- 22. 有沒有辦法在c#中動態獲取方法名?
- 23. 無法訪問從美國作爲國家的網頁
- 24. 有沒有辦法通過Google API獲取用戶的「家」和「工作」位置?
- 25. 從網站獲取所有用戶
- 26. 有沒有辦法從Flurry API獲取用戶ID?
- 27. 如何獲取我的網站中的國家/地區列表
- 28. 從沒有互聯網的iPhone GPS檢索國家名稱!
- 29. 有沒有辦法讓Rails控制器中的訪客城市和國家?
- 30. 有沒有辦法讓網站全屏顯示(用戶點擊)?
歡迎來到Stack Overflow!我們鼓勵你[研究你的問題](http://stackoverflow.com/questions/how-to-ask)。如果你已經[嘗試了某些東西](http://whathaveyoutried.com/),請將其添加到問題中 - 如果沒有,請先研究並嘗試您的問題,然後再回來。 – 2012-10-31 10:34:32