Python Flask Web Ping 工具:使用 ping 命令监控网络连接
使用 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)
代码解释:
- 导入必要的库: 导入 Flask 库用于构建 Web 应用程序,导入 subprocess 库用于执行 ping 命令。
- 创建 Flask 应用程序: 创建 Flask 应用程序并设置模板文件夹路径。
- 定义路由: 定义三个路由:
/: 首页,显示 index.html 模板。/start: 接收 POST 请求,启动 ping 命令。/stop: 接收 POST 请求,停止 ping 命令。/output: 接收 GET 请求,返回正在运行的 ping 命令的输出结果。
- 启动 ping 命令: 在
/start路由中,使用Popen启动 ping 命令,并存储进程对象process。 - 停止 ping 命令: 在
/stop路由中,如果process存在,则终止进程。 - 获取 ping 命令输出: 在
/output路由中,如果process存在,则读取标准输出并返回给客户端。
使用方法:
- 确保已安装 Python 和 Flask。
- 在代码中设置模板文件夹路径。
- 运行代码
python app.py。 - 在浏览器中访问
http://localhost:5000。 - 在浏览器界面上点击 “Start” 按钮启动 ping 命令,点击 “Stop” 按钮停止 ping 命令,并查看 ping 命令的输出结果。
改进建议:
- 可以使用前端框架 (例如 React 或 Vue) 构建更交互式的用户界面。
- 可以添加错误处理,防止程序崩溃。
- 可以添加更多的功能,例如:
- 设置 ping 的目标地址。
- 设置 ping 的间隔时间。
- 记录 ping 的结果。
原文地址: https://www.cveoy.top/t/topic/qz2U 著作权归作者所有。请勿转载和采集!