Python查询IP地址归属完整代码
本文实例为大家分享了Python查询IP地址归属的具体代码,供大家参考,具体内容如下
#!/usr/bin/envpython #-*-coding:utf-8-*- #查找IP地址归属地 #writerbykeery_log #Createtime:2013-10-30 #Lastupdate:2013-10-30 #用法:pythonchk_ip.pywww.google.com|pythonchk_ip.py8.8.8.8|pythonchk_ip.pyip.txt importsignal importurllib importjson importsys,os,re importsocket iflen(sys.argv)<=1: print"Pleaseinputipaddress!" sys.exit(0) defhandler(signum,frame): sys.exit(0) signal.signal(signal.SIGINT,handler) url="http://ip.taobao.com/service/getIpInfo.php?ip=" #查找IP地址 defip_location(ip): data=urllib.urlopen(url+ip).read() datadict=json.loads(data) foroneinfoindatadict: if"code"==oneinfo: ifdatadict[oneinfo]==0: returndatadict["data"]["country"]+datadict["data"]["region"]+datadict["data"]["city"]+datadict["data"]["isp"] #定义IP与域名正则 re_ipaddress=re.compile(r'^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$') re_domain=re.compile(r'[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?') ifos.path.isfile(sys.argv[1]):#如果参数是文件,迭代查找 file_path=sys.argv[1] fh=open(file_path,'r') forlineinfh.readlines(): ifre_ipaddress.match(line): city_address=ip_location(line) printline.strip()+":"+city_address else: ip_address=sys.argv[1] ifre_ipaddress.match(ip_address):#如果参数是单个IP地址 city_address=ip_location(ip_address) printip_address+":"+city_address elif(re_domain.match(ip_address)):#如果参数是域名 result=socket.getaddrinfo(ip_address,None) ip_address=result[0][4][0] city_address=ip_location(ip_address) printip_address.strip()+":"+city_address
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。