使用 Python Flask 构建 Web Ping 工具

本示例将使用 Python Flask 框架构建一个简单的 Web Ping 工具,可以用来监控网络连接状态。用户可以在浏览器界面上启动和停止 ping 命令,并实时查看 ping 命令的输出结果。

代码如下:

from flask import Flask, request, render_template
from subprocess import Popen, PIPE

app = Flask(__name__, template_folder='D:\python\webping\test\')
process = None

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/start', methods=['POST'])
def start():
    global process
    times = request.form.get('times')
    command = f'ping 1.1.1.1 -n {times}'
    process = Popen(command, shell=True, stdout=PIPE, stderr=PIPE)
    return 'Started', 200

@app.route('/stop', methods=['POST'])
def stop():
    global process
    if process:
        process.terminate()
        process = None
    return 'Stopped', 200

@app.route('/output', methods=['GET'])
def output():
    global process
    if process:
        output = process.stdout.read()
        return output.decode('utf-8'), 200
    else:
        return 'No process running', 200

if __name__ == '__main__':
    app.run(port=5000)

代码解释:

  1. 导入必要的库: 导入 Flask 库用于构建 Web 应用程序,导入 subprocess 库用于执行 ping 命令。
  2. 创建 Flask 应用程序: 创建 Flask 应用程序并设置模板文件夹路径。
  3. 定义路由: 定义三个路由:
    • /: 首页,显示 index.html 模板。
    • /start: 接收 POST 请求,启动 ping 命令。
    • /stop: 接收 POST 请求,停止 ping 命令。
    • /output: 接收 GET 请求,返回正在运行的 ping 命令的输出结果。
  4. 启动 ping 命令:/start 路由中,使用 Popen 启动 ping 命令,并存储进程对象 process
  5. 停止 ping 命令:/stop 路由中,如果 process 存在,则终止进程。
  6. 获取 ping 命令输出:/output 路由中,如果 process 存在,则读取标准输出并返回给客户端。

使用方法:

  1. 确保已安装 Python 和 Flask。
  2. 在代码中设置模板文件夹路径。
  3. 运行代码 python app.py
  4. 在浏览器中访问 http://localhost:5000
  5. 在浏览器界面上点击 “Start” 按钮启动 ping 命令,点击 “Stop” 按钮停止 ping 命令,并查看 ping 命令的输出结果。

改进建议:

  • 可以使用前端框架 (例如 React 或 Vue) 构建更交互式的用户界面。
  • 可以添加错误处理,防止程序崩溃。
  • 可以添加更多的功能,例如:
    • 设置 ping 的目标地址。
    • 设置 ping 的间隔时间。
    • 记录 ping 的结果。
Python Flask Web Ping 工具:使用 ping 命令监控网络连接

原文地址: https://www.cveoy.top/t/topic/qz2U 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录