python获取IP归属地
#coding=utf-8 import urllib2 #导入urllib2 import simplejson #导入simplejson ip = '122.94.240.206' #要查询的IP地址 url = 'http://ip.taobao.com/service/getIpInfo.php?ip=%s' % ip #查询的淘宝API f = urllib2.urlopen(url).read() #通过API获得信息,格式为str #print f s = simplejson.loads(f) #将str格式转化为dict #print s print 'country is %s' % s['data']['country'] #这样就可以随意获得信息了 print 'area is %s' % s['data']['area'] print 'region is %s' % s['data']['region'] print 'city is %s' % s['data']['city'] print 'isp is %s' % s['data']['isp']
备注:
1、本程序是采用淘宝的API:http://ip.taobao.com/service/getIpInfo.php?ip={IP}
2、有些IP信息不完整,查询的时候显示不出来,比如‘117.79.153.62’这个IP就没有显示网络服务商是电信还是网通。
3、本程序将str转为字典是使用simplejson库,还有其他方法可以实现,可以参见我在chinaunix提问的帖子,http://bbs.chinaunix.net/thread-4070537-1-1.html。里面crifan,ghostwwl等朋友的回复都很有料。关于json,解码方面的知识可参见crifan的回复。(请原谅我太懒了。。。)
声明:本程序暂未完成,只是把API记录下,之后再完善程序。
淘宝IP API:http://ip.taobao.com/service/getIpInfo.php?ip={IP}
得到的是str,可以用正则将所需信息提取出来,程序之后完成再补上。