鱼C论坛

 找回密码
 立即注册
查看: 19506|回复: 239

[作品展示] IP地址定位真实物理地址--py2.7

  [复制链接]
发表于 2016-10-12 09:41:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 domenet 于 2017-7-25 16:55 编辑

[2017.7.28百度关闭接口后不可用]
逛某站时看到有人用易语言写了这个工具,调用的是百度的接口。觉得好玩于是也仿写了Python版的。
百度的接口精准度还可以,测试了几个IP定位偏差不大。百度的AK有限次。自己可以申请个就够自己玩了。
QQ截图20161012093823.png
代码:
#!/bin/usr/env python
#-*- coding:utf-8 -*-
'''百度地图API-高精度IP定位'''
import urllib2,json,threading
from Tkinter import *
code={161:'定位成功',167:'定位失败',1:'服务器内部错误',101:'AK参数不存在',200:'应用不存在,AK有误请检查重试',201:'应用被用户自己禁止',202:'应用被管理员删除',203:'应用类型错误',210:'应用IP校验失败',211:'应用SN校验失败',220:'应用Refer检验失败',240:'应用服务被禁用',251:'用户被自己删除',252:'用户被管理员删除',260:'服务不存在',261:'服务被禁用',301:'永久配额超限,禁止访问',302:'当天配额超限,禁止访问',401:'当前并发超限,限制访问',402:'当前并发和总并发超限',999:'网络连接错误---[内网或无网络连接]'}
def GetAddress(ip,ak='oTq3kbSY0uwjt1zm0AepBr7FqYTx4Lcb'):
    try:
        res=urllib2.urlopen('http://api.map.baidu.com/highacciploc/v1?qcip=%s&qterm=pc&extensions=3&ak=%s&coord=bd09ll' % (ip,ak),timeout=2)
        resjson=json.loads(res.read())
        res.close()
        return resjson
    except Exception,e:        
        return 999
def main():
    text.delete(0.0,END)
    qip=ip.get()
    if qip is None:
        pass
    else:
        connectJson=GetAddress(qip)
        if connectJson != 999 and connectJson['result']['error'] == 161:
            formatted_address=connectJson['content']['formatted_address']#地址       
            confidence=connectJson['content']['confidence']#精准度
            if connectJson['content'].get('business'):
                business=connectJson['content']['business']#商圈       
            else :
                business=u'无'                       
            result=connectJson['result']['loc_time']#定位时间
            if connectJson['content'].get('location_description'):
                location_description=connectJson['content']['location_description']#精确到
            else :
                location_description=u'无'        
            text.insert(END,u'\nIP地址: %s    精准度: %0d%%\n\n'%(qip,float(confidence)*100))
            text.insert(END,u'所在地址: '+formatted_address+'\n\n')
            text.insert(END,u'所在商圈: '+business+'\n\n')
            text.insert(END,u'精确到: '+location_description+'\n\n')
            text.insert(END,u'定位时间: ['+result+']')
            codevar.set(code.get(connectJson['result']['error']))
        elif connectJson==999:
            codevar.set(code.get(connectJson))
        else:
            codevar.set(code.get(connectJson['result']['error']))
def SearchIP():
    t=threading.Thread(target=main)
    t.start()
if __name__ == '__main__':
    root=Tk()
    root.title(u'IP精准定位 <by Domenet 2016-10-11>')
    root.geometry("350x300")
    root.resizable(False, False)
    ip=StringVar()
    codevar=StringVar()
    lb=Label(root,text='待查询的IP地址:')
    ent=Entry(root,textvariable=ip,width=20)
    btn=Button(root,text=u'  查 询  ',command=SearchIP)
    text=Text(root,width=50,height=18)
    lb.grid(row=0,column=0,pady=5)
    ent.grid(row=0,column=1,pady=5)
    btn.grid(row=0,column=2,pady=5)
    text.grid(row=1,columnspan=3)
    codelb=Label(root,textvariable=codevar)
    codelb.grid(row=2,columnspan=3)
    codevar.set(u'准备就绪')
    mainloop()
    

评分

参与人数 2荣誉 +11 鱼币 +11 收起 理由
purplenight + 1 + 1 支持楼主!
冬雪雪冬 + 10 + 10 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-10-12 10:50:28 | 显示全部楼层
这个可以有
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-12 11:40:23 | 显示全部楼层
学习下新姿势
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-12 14:37:03 | 显示全部楼层
原来学会编程真的可以改变世界啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-12 14:40:35 | 显示全部楼层
为啥运行不了,显示13行的逗号invalid syntax
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-12 14:42:27 | 显示全部楼层
学习下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-12 14:57:41 | 显示全部楼层
如果772815726 发表于 2016-10-12 14:40
为啥运行不了,显示13行的逗号invalid syntax

这是2.7版的,3.x.x把 逗号改成as
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-12 15:50:27 | 显示全部楼层
真有这么厉害吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-12 16:36:32 | 显示全部楼层
666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-10-12 17:00:10 | 显示全部楼层
domenet 发表于 2016-10-12 14:57
这是2.7版的,3.x.x把 逗号改成as

thx!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-12 17:16:19 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-12 17:49:20 | 显示全部楼层
高手 我来学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-15 18:56:45 | 显示全部楼层
看看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-15 20:12:45 | 显示全部楼层
厉害了我的哥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-17 09:15:39 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-10-17 09:39:32 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-10-17 09:46:06 | 显示全部楼层
666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-10-17 12:54:15 | 显示全部楼层
感谢分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-17 22:22:37 | 显示全部楼层
是界面制作和连接应用?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-17 22:32:26 | 显示全部楼层
世界和平
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 09:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表