Python实现根据IP获得地址

Python实现根据IP获得地址

首先说明一下,本文采取投机的方式,直接爬取地址解析网站进行地址解析

上代码

import json
import tkinter as tk
import requests


def gui():
    # 创建窗口界面
    window = tk.Tk()
    window.title("IP查地址")
    window.geometry("200x100")
    e = tk.Entry(window, show=None)
    e.pack()
    t = tk.Text(window, height=2)
    t.pack()

    def submit():
        ip_str = str(e.get())
        address = main(ip_str)
        t.insert('end', address)

    b = tk.Button(window, text='Submit', width=15, height=2, command=submit)
    b.pack()
    window.mainloop()


# 根据IP获得地址的主函数
def main(ip_str):
    session = requests.Session()
    url = 'https://tool.lu/ip/ajax.html'
    url2 = 'https://tool.lu/ip'
    add_ip = ip_str
    form_data = {
        'ip': add_ip
    }

    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36',
        'cookie': 'uuid=74e87e7c-f499-494f-c9ae-0e67d9296946; slim_session=%7B%22slim.flash%22%3A%5B%5D%7D; Hm_lvt_0fba23df1ee7ec49af558fb29456f532=1574948551,1574959250; Hm_lpvt_0fba23df1ee7ec49af558fb29456f532=1574959250; _access=a407a34146823aa7d668beb57420b6ac839396c84224588886984b3cea946462'

    }
    r = session.get(url2)
    # print(r.cookies.get_dict()['slim_session'])
    r = session.post(url, headers=headers, data=form_data)
    print(r.cookies.get_dict())
    response = session.post(url, headers=headers, data=form_data)
    add_dict = json.loads(response.text)

    return add_dict['text']['chunzhen']
    # print(add_dict)


# 刷新界面
def refresh():
    url = 'https://tool.lu/ip'
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36',
        'cookie': 'uuid=74e87e7c-f499-494f-c9ae-0e67d9296946; Hm_lvt_0fba23df1ee7ec49af558fb29456f532=1574948551; slim_session=%7B%22slim.flash%22%3A%5B%5D%7D; _access=a407a34146823aa7d668beb57420b6ac2b2eeceeb56e6faa187c2e944580daa8; Hm_lpvt_0fba23df1ee7ec49af558fb29456f532=1574956537'

    }

    requests.get(url, headers=headers)


if __name__ == '__main__':
    gui()

让我比较纳闷的事,网站的cookie一段时间就会改变,所以一段时间就要更改cookie,即使我采用了 requests.Session(),还是不行。

效果图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6D0ymLwC-1574960855658)(C:%5CUsers%5C10797%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5C1574960808436.png)]

了 requests.Session(),还是不行。

效果图

Python实现根据IP获得地址_第1张图片

你可能感兴趣的:(Python)