通過IP地址獲取對應的地區信息通常有兩種方法:
1)自己寫程序,解析IP對應的地區信息,需要數據庫。
2)根據第三方提供的API查詢獲取地區信息。
第一種方法,參見文本《通過純真IP數據庫獲取IP地址對應的地區信息》,這種方法的維護代價較高,而且對自己的服務器有一定的壓力。
隨着技術的開放,第三方已經逐漸免費開放相應的API。經過測試,目前網易和新浪提供的較為穩定易用。
1)新浪IP地址查詢API接口新浪的IP地址查詢接口:
測試用例:
返回以下信息:
var remote_ip_info = {"ret":1,"start":"114.114.112.0","end":"114.114.119.255","country":"\u4e2d\u56fd","province":"\u6c5f\u82cf","city":"\u5357\u4eac","district":"","isp":"\u7535\u4fe1","type":"","desc":"\u5357\u4eac\u4fe1\u98ce114dns\u4e13\u5c5e"};
文字經過utf-8編碼,分別對應不同的信息。
可以通過javascript跨域直接調用,如(使用jquery):
$.getScript('http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip='+ip, function(_result){
if (remote_ip_info.ret == '1'){
alert('IP 詳細信息:', 'IP:'+ip+'<BR>國家:'+remote_ip_info.country+'<BR>省份:'+remote_ip_info.province+'<BR>城市:'+remote_ip_info.city+'<BR>區:'+remote_ip_info.district+'<BR>ISP:'+remote_ip_info.isp+'<BR>類型:'+remote_ip_info.type+'<BR>其他:'+remote_ip_info.desc);
} else {
alert('錯誤', '沒有找到匹配的 IP 地址信息!');
}
查詢IP地址:
舉例:
返回xml文本信息:
<?xml version="1.0" encoding="gbk"?>
<smartresult>
<product type="ip">
<ip>114.114.114.114</ip>
<location>江蘇省南京市 信風網絡科技有限公司公眾DNS服務器</location>
</product>
</smartresult>