Python写获取本机公网ip地址工具

admin 2024年2月13日22:36:21评论8 views字数 1957阅读6分31秒阅读模式
Python写获取本机公网ip地址工具
代码:

import requestsfrom PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QLineEdit, QPushButtonfrom PyQt5.QtGui import QFont

def get_public_ip():    try:        response = requests.get('https://api.ipify.org?format=json')        data = response.json()        public_ip = data['ip']        return public_ip    except Exception as e:        return None

class MainWindow(QMainWindow):    def __init__(self):        super().__init__()        self.setWindowTitle("公网IP地址查询工具---微信公众号:蓝胖子之家")        self.setFixedSize(576, 283)

        self.label = QLabel("获取本机公网IP地址", self)        self.label.setGeometry(50, 50, 476, 30)        self.label.setFont(QFont("Arial", 16))

        self.ip_textbox = QLineEdit(self)        self.ip_textbox.setGeometry(50, 90, 476, 30)        self.ip_textbox.setReadOnly(True)        self.ip_textbox.setStyleSheet("QLineEdit { background-color: #f2f2f2; border: 1px solid #ccc; font-size: 14px; }")        self.ip_textbox.setFont(QFont("Arial", 14))

        self.button = QPushButton("一键获取IP", self)        self.button.setGeometry(200, 140, 176, 40)        self.button.setStyleSheet("QPushButton { background-color: #4CAF50; color: white; border: none; font-size: 16px; }"                                   "QPushButton:hover { background-color: #45a049; }")        self.button.setFont(QFont("Arial", 16))        self.button.clicked.connect(self.show_public_ip)

    def show_public_ip(self):        public_ip = get_public_ip()        if public_ip:            self.ip_textbox.setText(public_ip)        else:            self.ip_textbox.setText("获取公网IP地址时发生错误")

# 创建应用程序app = QApplication([])

# 创建主窗口window = MainWindow()

# 显示窗口window.show()

# 运行应用程序app.exec_()

在代码里首先导入了所需的库:requests用于发送HTTP请求,PyQt5.QtWidgetsPyQt5.QtGui用于创建GUI窗口。

get_public_ip()函数使用requests.get()方法发送GET请求到https://api.ipify.org?format=json,并从返回的JSON数据中提取出公网IP地址。如果请求成功,就返回公网IP地址;否则返回None。

接下来定义了一个MainWindow类,继承自QMainWindow。在构造函数中,设置了窗口的标题、固定大小,并创建了标签、文本框和按钮。

标签label用于显示"获取本机公网IP地址",设置了字体和位置。

文本框ip_textbox用于显示公网IP地址,设置了只读属性、样式和字体。

按钮button用于触发获取公网IP地址的操作,设置了样式和字体,并连接了clicked信号和show_public_ip()槽函数。

show_public_ip()方法调用get_public_ip()函数获取公网IP地址,并将其显示在文本框中。如果获取成功,文本框显示公网IP地址;否则显示"获取公网IP地址时发生错误"。

最后,创建了一个应用程序对象app,并创建了一个MainWindow对象window作为主窗口。调用window.show()显示窗口,并通过app.exec_()运行应用程序。

运行效果:

Python写获取本机公网ip地址工具

原文始发于微信公众号(蓝胖子之家):Python写获取本机公网ip地址工具

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月13日22:36:21
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Python写获取本机公网ip地址工具https://cn-sec.com/archives/2491093.html

发表评论

匿名网友 填写信息