• 软件:1160
  • 资讯:41601|
  • 收录网站:97880|

IT精英团

tkinter pygeoip根据ip查询地址的可视化界面

tkinter pygeoip根据ip查询地址的可视化界面

浏览次数:
评论次数:
编辑: 温瑜
信息来源: 51CTO博客
更新日期: 2021-06-11 01:05:48
摘要

tkinter+pygeoip+根据ip查询地址的可视化界面,GeoIP数据库(MaxMind公司)可以根据来访者的IP,定位他的经纬度,国家/地区,省市,甚至街道等位置信息Tkinter模块("Tk接口”)是Python的标准TkGUI工具包的接口练习使用tkinter地址:http://effbot.org/tkinterbook/tkinter-index.htm准备工作下载Country,City库要关联IP与物理位置,我们需要有一个包含这样对应关系的数据库。我们可以使用开源数据库Geo

  • 资讯详情

GeoIP 数据库可以根据访问者的IP地址定位经纬度、国家/地区、省/市、甚至街道等位置信息

Tkinter模块(' Tk接口')是Python的标准Tk GUI工具包的接口

使用tkinter地址练习:http://effbot.org/tkinterbook/tkinter-index.htm

准备工作/即将工作

下载国家,城市图书馆

要将知识产权与物理位置联系起来,我们需要一个包含这种对应关系的数据库。

我们可以使用开源数据库地理城市,它可以准确地将IP地址与城市相关联

下载地址:http://dev.maxmind.com/geoip/legacy/geolite/

img

或者:

http://geo lite . max mind.com/download/GeoIP/database/geolitesity . dat . gz

http://geolite . max mind.com/download/GeoIP/database/geolite country/GeoIP . dat . gz

直接下载相应的数据。

下载第三方库

下载相应的tkinter和pygeoip库

运行文件:

导入tkinter

导入pygeoip

类别查找位置(对象):

def __init__(self):

self.gi=pygeoip。GeoIP('。/GeoLiteCity.dat ')

#创建一个主窗口来容纳其他组件

self.root=tkinter。Tk()

#设置主窗口的标题内容

Self.root.title('全球定位ip定位(离线版)')

#创建一个输入框并设置大小

self.ip_input=tkinter。入口(自根,宽度=30)

#创建回应列表

self.display_info=tkinter。列表框(自根,宽度=50)

#按钮创建查询结果

自我。result _ button=tkinter . button(self。root,command=self。find _ position,text=' query ')

#完成布局

def GUI _ arrange(self):

self.ip_input.pack()

self.display_info.pack()

self.result_button.pack()

#根据ip查找地理位置

def find_position(self):

#获取输入信息

self.ip_addr=self.ip_input.get()

aim=self . gi . record _ by _ name(self . IP _ addr)

#为了避免非法值,导致程序崩溃,如果有兴趣,可以写有规律的具体规则。为了方便初学者理解,减少代码量,我直接对它们进行了广泛的过滤。

try:

#得到目标城市

city=aim['city']

#了解目标国家

country=aim['country_name']

#获取目标区域

region_code=aim['region_code']

#获取目标经度

经度=目标['经度']

#获取目标纬度

纬度=目标['纬度']

除外:

及格

#创建临时列表

_ip_info=['纬度:' str(纬度),'经度3360' str(经度),'地区代码:' str(地区代码)、

城市:' str(城市),国家或地区:' str(国家),ip:' str(self.ip_addr)]

#清除回声列表的可见部分,类似于清除命令

对于范围(10):中的项目

self.display_info.insert(0 ' ')

#为回应列表赋值

对于_ip_info:中的项目

self.display_info.insert(0,项目)

#这里的返回值没用,只是为了好看。

返回_ip_info

def main():

#初始化对象

FL=查找位置()

#制作布局

FL.gui _ arrang()

#主程序执行

tkinter.mainloop()

及格

if __name__=='__main__':

main()

运行效果:

img

标签:
tl右旋糖酐与urllib.parse.urlparse区别
« 上一篇
返回列表
下一篇 »
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
你会是第一个来这里评论的人吗?
最近发布资讯
更多