python 查询ip工具

python ip查询

今天用python爬虫及 tkinter 写一个查询ip信息的可视化工具

1.Python GUI编程(Tkinter)

Python 提供了多个图形开发界面的库,包括Tkinter,wxPython。Jython,其他两个不说,今天用到的是Tkinter。

Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。

创建一个GUI程序也很简单,只需要四布

1、导入 Tkinter 模块
2、创建控件
3、指定这个控件的 master, 即这个控件属于哪一个
4、告诉 GM(geometry manager) 有一个控件产生了。

写一段测试代码如下:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
import Tkinter
top = Tkinter.Tk()
# 进入消息循环
top.mainloop()

运行即可弹出GUI界面
python 查询ip工具_第1张图片

2,进入正式程序

原理是通过网站ipipnet (https://www.ipip.net)可以查询ip信息,再通过爬虫爬取需要的信息,显示在GUI中

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/12/20 20:44
# @Author  : Fang
# @E-mail  : [email protected]
# @Site    : 
# @File    : thinter_study.py
# @Software: PyCharm

from tkinter import *
import requests,re

# 对付“反盗链”
# from fake_useragent import UserAgent
# import random
# ua = UserAgent()
# headers = {'User-Agent':ua.random}
# print(headers)

def get_content():
    #获得 输入框中的信息
    ip=ip_input.get()
    #模拟浏览器请求网络
    # headers={'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0'}
    headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}


    #请求网络
    response = requests.get("https://www.ipip.net/ip/{}.html".format(ip),headers=headers)
    # print(response.text)
    # print(response.content)
    address = re.search(r'地理位置.*?;">(.*?)',response.text,re.S)
    operator = re.search(r'运营商.*?;">(.*?)', response.text, re.S)
    time_zone = re.search(r'时区.*?;">(.*?)', response.text, re.S)
    wrap = re.search(r'地区.*?;">(.*?)', response.text, re.S)

    if address:
        ip_info=['地理位置:'+address.group(1),'当前的ip:'+ip]
        if operator:
            ip_info.insert(0,'拥有者/运营商:'+operator.group(1))
        if time_zone:
            ip_info.insert(0, '时区:' + time_zone.group(1))
        if wrap:
            ip_info.insert(0, '地区中心经纬度:' + wrap.group(1))

        display_info.delete(0,5)


        for item in ip_info:
            display_info.insert(0,item)
    else:
        display_info.delete(0,5)
        display_info.insert(0,"无效ip")

#创建一个窗口
root=Tk()
#标题
root.title("Fang的ip定位查询工具")
#设置输入框 规定尺寸
ip_input=Entry(root,width=40)
#创建一个回显列表
display_info=Listbox(root,width=60,height=10)
#创建查询按钮
result_button=Button(root,command=get_content,text="查询")

def main():
    #显示界面
    ip_input.pack()
    display_info.pack()
    result_button.pack()
    #运行
    root.mainloop()

#程序入口
if __name__ == '__main__':
    main()

关于对付反盗链headers如何获取,请移步我的另一篇博客,传送门:Python爬虫之headers和data的获取

接下来运行一下

python 查询ip工具_第2张图片

输入ip进行查询
python 查询ip工具_第3张图片

根据经纬度可以查询到黑你电脑的人的定位哦(前提是对方用的是自己的真实ip,但是不会有人这么傻的)
python 查询ip工具_第4张图片

你可能感兴趣的:(python,爬虫)