今天跟大家唠唠我折腾“wodeip”这个小玩意儿的经过,纯属个人瞎搞,大家图一乐呵。
事情是这样的,最近老有朋友问我“哥们儿,你现在IP是”。每次都要打开网页查一下,太麻烦了。寻思着能不能自己搞个小工具,一键就能看到自己的IP地址,最好还能显示个地理位置啥的,方便快捷。
说干就干!我得找个能查IP的库。网上搜了一圈,发现ip2region
这个东西挺火的,离线IP地址库,还自带查询框架,看着挺靠谱。果断下载下来,准备开搞。
我想用Python写个脚本,简单粗暴。 pip install ip2region ,然后对着官方文档一顿操作,几行代码就搞定了IP查询功能。但是,光有IP还不行,还得显示地理位置。这下有点懵了,ip2region
虽然能查,但返回的数据格式不太友得自己解析。
折腾了半天,终于把地理位置信息提取出来了。但是,这个脚本只能在命令行跑,用起来还是不够方便。寻思着能不能搞个图形界面,点一下按钮就能显示IP和地理位置。
于是我又开始研究GUI编程。本来想用Tkinter
,但是界面太丑了,实在忍不了。后来发现了PyQt5
,界面美观多了,就是学起来有点费劲。啃了几天文档,总算把界面搭起来了,一个按钮,两个文本框,简单明了。
要把IP查询功能集成到GUI里。这下又遇到了问题,GUI程序是跑在主线程里的,如果直接调用IP查询函数,程序会卡死。得用多线程!开了个线程,专门负责IP查询,主线程负责更新界面,终于解决了卡顿问题。
把代码打包成可执行文件,这样就可以直接在电脑上运行了。用pyinstaller
打包,一路next,搞定!
整个过程下来,踩了不少坑,学了不少东西。虽然“wodeip”这个小工具很简单,但对我来说,也算是一个小小的成就。以后再也不用麻烦别人了,一键查询,方便快捷!
- 找库:
ip2region
是个好东西,离线查询,速度快。 - GUI:
PyQt5
界面美观,就是学起来有点费劲。 - 多线程: GUI程序必须用多线程,不然会卡死。
- 打包:
pyinstaller
打包成可执行文件,方便使用。
就这样,我的“wodeip”就诞生了,虽然粗糙,但是够用就行!下次有空再优化一下,加点新功能。