IP地址信息查询脚本

IP地址信息查询脚本

from tkinter import *
from tkinter import ttk

import requests


def query_ip():
    ip = entry.get()
    if not ip:
        # 如果用户没有输入 IP 地址,查询本机公网 IP 地址
        response = requests.get('https://api.ipify.org')
        if response.status_code == 200:
            ip = response.text
            entry.delete(0, END)
            entry.insert(END, ip)
        else:
            text.delete(1.0, END)
            text.insert(INSERT, '查询失败')
            return

    url = f'https://wq.apnic.net/apnic-bin/jwhois.pl?ip={ip}'
    response = requests.get(url)
    if response.status_code == 200:
        result = response.text
        formatted_result = format_result(result)
        text.delete(1.0, END)
        text.insert(INSERT, formatted_result)
        with open(f'{ip}.log', 'w') as f:
            f.write(f'查询IP:{ip}\n查询结果:{formatted_result}\n')
    else:
        text.delete(1.0, END)
        text.insert(INSERT, '查询失败')


def format_result(result):
    # 这里需要根据实际的返回结果进行格式化
    return result


root = Tk()
root.title('IP信息查询-数据来源APNIC-PoweredBy KGSH')
root.geometry('600x400')

Label(root, text='请输入IP地址或直接默认本机公网IP查询').pack(pady=10)

frame = ttk.Frame(root, padding=(20, 10))
frame.pack(fill=BOTH)

entry = ttk.Entry(frame)
entry.pack(side=LEFT, padx=(0, 10))

# 获取本机公网 IP 地址并设置为输入框的默认值
response = requests.get('https://api.ipify.org')
if response.status_code == 200:
    ip = response.text
    entry.insert(END, ip)

button = ttk.Button(frame, text='查询', command=query_ip)
button.pack(side=LEFT)

text = Text(root, wrap=WORD, relief=SUNKEN, borderwidth=1)
text.pack(fill=BOTH, padx=20, pady=10)

root.mainloop()

本博客/网站上的文章(以下简称“文章”)旨在促进技术交流和学习。这些文章仅代表作者个人观点,不代表任何公司、组织或个人。

在阅读、下载、复制、传播或以其他方式使用文章内容时,请注意以下几点:

  1. 合法用途:文章仅可用于技术交流、学习和个人非商业目的。您不得以任何方式将文章内容用于违反法律、法规、道德准则或其他不合规的用途。

  2. 文章准确性和完整性:文章中的信息可能会有所疏漏或不完整。您需自行承担使用文章中的信息所带来的风险,并在适用的情况下寻求专业建议。作者和本博客/网站对文章中的错误或不足之处不承担任何责任。

  3. 衍生作品:如需基于文章创作衍生作品,请事先获得作者的书面许可,并确保遵循相关许可条款。

  4. 担保和声明:作者和本博客/网站明确否认对文章的适用性、充分性、准确性、可靠性或完整性作出任何明示或默示的担保和声明。

如您违反上述条款,作者和本博客/网站保留随时终止您使用文章、追究法律责任并要求赔偿损失的权利。