IP归属地查询
来源:互联网 发布:单片机软件工程师要求 编辑:程序博客网 时间:2024/04/29 14:22
#urllib:HTTP API请求
##re:IP格式验证、返回结果提取
tkinter:界面布局、样式
## IP定位,根据盛大IP查询API所编写## anthor:YanZhenwei(yanzhenwei1101@qq.com)## Create version: V1.0Beta01 2012-03-02## Last Update:2012-03-03from tkinter import *import reimport urllibimport urllib.requestclass MWindow(Frame): def __init__(self): Frame.__init__(self) self.master.title('IPSearch') self.master.geometry('650x400') self.pack(side = TOP,expand = YES,fill = BOTH) ipVar = StringVar() res = {} res['result'] = StringVar() res['country'] = StringVar() res['city'] = StringVar() res['sp'] = StringVar() # top Frame topF = self.createFrame(self,TOP) inL = self.createLabel(topF,TOP,'请输入IP地址:') ipE = self.createEntry(topF,TOP,ipVar) resL = self.createLabel(topF,TOP,'查询结果:') resE = self.createEntry(topF,TOP,res['result']) #mid Frame midF = self.createFrame(self,TOP) conL = self.createLabel(midF,LEFT,'省') conE = self.createEntry(midF,LEFT,res['country']) citL = self.createLabel(midF,LEFT,'市') citE = self.createEntry(midF,LEFT,res['city']) conL = self.createLabel(midF,LEFT,'运营商') spE = self.createEntry(midF,LEFT,res['sp']) #bottom Frame botF = self.createFrame(self,TOP) searchB = Button(botF,text = 'search', command = lambda ipVar = ipVar,res = res:self.IpSearch(ipVar,res)) searchB.pack(side = TOP,expand = YES,fill = BOTH) def createFrame(self,parent,side): f = Frame(parent) f.pack(side = side,expand = YES,fill = BOTH) return f def createLabel(self,parent,side,text): l = Label(parent,text = text) l.pack(side = side,expand = YES) return l def createEntry(self,parent,side,textvariable): e = Entry(parent,relief = SUNKEN,textvariable = textvariable,width = 20) e.pack(side = side,expand = NO) return e def IpSearch(self,ipVar,res): ipRex = '((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))))' ip = ipVar.get() tmp = re.findall(re.compile(ipRex),ip) if not tmp: res['result'].set('ip格式错误,请重新输入') return data = IpS().search(ip) if data['result'] == '1': data['result'] = '该IP所在位置如下' else: data['result'] = '找不到相关信息' res['result'].set(data['result']) res['country'].set(data['country']) res['city'].set(data['city']) res['sp'].set(data['sp'])class IpS(): def __init__(self): self.apiurl = 'http://ipquery.sdo.com/getipinfo.php?ip=' def search(self,ip): headers = ('User-Agent','Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1') opener = urllib.request.build_opener() opener.addheaders = [headers] data = opener.open(self.apiurl+ip).read() data = data.decode('UTF-8') dataList = {} patterns = '<result>([0-9])</result>' dataList['result'] = re.findall(re.compile(patterns),data)[0] patterns = '<country>([^x00-xff]+)</country>' dataList['country'] = re.findall(re.compile(patterns),data)[0] patterns = '<city>([^x00-xff]+)</city>' dataList['city'] = re.findall(re.compile(patterns),data)[0] patterns = '<sp>([^x00-xff]+)</sp>' dataList['sp'] = re.findall(re.compile(patterns),data)[0] return dataListif __name__ == '__main__': MWindow().mainloop()
- ip查询归属地
- IP归属地查询
- IP地址归属地查询。
- js 查询IP归属地
- [转载]手机号码IP地址归属地查询
- 查询ip归属地的shell脚本
- Ajax 号码、IP、身份证归属地查询
- ip、号码归属地查询开发接口
- IP地址归属地查询接口
- 查询ip归属地 小应用
- Linux,IP归属地查询(nali)
- Java联网查询IP地址归属地
- IP、域名、手机号归属地查询
- js查询ip地址归属地
- 利用淘宝IP查询接口,免费查询IP归属地
- 使用IP接口查询指定IP归属地
- ip地址查询和手机归属地查询
- 每秒万次查询,PHP实现 IP查询归属地
- 题目19:打印极值点下标
- POJ3740--Easy Finding
- 处理APMServ无法启动Apache服务
- 三分
- 2484(可参考1025)
- IP归属地查询
- 二进制枚举
- 用JavaScript修改CSS属性
- Find something
- 网页实现多文件下载,貌似不行。这里有一篇相关的文章
- 【Codeigniter-Upload类】上传zip/rar文件
- hdu1166
- “善用Google”整理
- 验证log4j.xml时不能找到log4j.dtd