- A+

根据现有提供海量ip进行检测网络质量,如果手动操作那将成为一项很难完成的操作。为了简化这一任务,可以使用 Python自动化脚本,利用 openpyxl 和 pythonping 库,自动执行 ping 测试并记录结果到 Excel 文件。
openpyxl:
openpyxl 是一个用于操作 Excel 文件的库。它允许你读取、写入和修改 Excel 文件(.xlsx 格式)中的数据。你可以创建、编辑和格式化 Excel 表格,进行单元格操作,添加图表等。
pythonping:
pythonping 是一个用于执行网络 ping 测试的库。通过发送 ICMP Echo 请求到目标主机并接收响应,它可以测量网络连接的延迟,并提供有关丢包率等信息。
1. 准备工作
首先,我们需要安装所需的 Python 库。在终端中运行以下命令:
pip install openpyxl pythonping
这将安装 openpyxl 和 pythonping 库。
2、脚本
# !/usr/bin/python3
import openpyxl
from pythonping import ping
def ping_and_update_excel(ip, row, sheet):
try:
# 执行 ping 测试
result = ping(ip, count=2)
if result is not None and result.rtt_avg:
# 将秒转换为毫秒
avg_delay = result.rtt_avg * 1000
max_delay = result.rtt_max * 1000
min_delay = result.rtt_min * 1000
packet_loss = round(result.packet_loss)
# 保留三位小数
avg_delay = round(avg_delay, 3)
max_delay = round(max_delay, 3)
min_delay = round(min_delay, 3)
# 更新 Excel 表格中的值
sheet.cell(row=row, column=4, value=avg_delay) # 平均延时
sheet.cell(row=row, column=5, value=max_delay) # 最大延时
sheet.cell(row=row, column=6, value=min_delay) # 最小延时
sheet.cell(row=row, column=7, value=packet_loss) # 丢包数
print(
f"Updated {ip} at row {row} with actual values - Average: {avg_delay} ms, Max: {max_delay} ms, Min: {min_delay} ms.")
else:
print(f"Failed to ping {ip}.")
except Exception as e:
print(f"Error while pinging {ip}: {e}")
def main():
# 打开 Excel 文件
excel_file = "test1.xlsx"
wb = openpyxl.load_workbook(excel_file)
sheet = wb.active
# 添加新的表头
new_headers = ["平均延时", "最大延时", "最小延时", "丢包数"]
for col_num, header in enumerate(new_headers, start=4):
sheet.cell(row=1, column=col_num, value=header)
# 循环测试
for row in range(2, sheet.max_row + 1):
ip = sheet.cell(row=row, column=1).value
if ip:
print(f"Pinging {ip}...")
ping_and_update_excel(ip, row, sheet)
# 保存
wb.save(excel_file)
if __name__ == "__main__":
main()
新建test1.xlsx,内容格式如下格式即可。示例如下

脚本说明
- 测试数据将以ICMP返回数据作为解析原始数据
- 脚本会打开名为
test1.xlsx的 Excel 文件,执行 ping 测试并更新文件中的数据。 - 新的数据将包括平均延迟、最大延迟、最小延迟和丢包数。
4. 运行脚本
在终端中运行脚本:
python3 ping.py
脚本将执行 ping 测试结束,并将结果更新到 Excel 文件中。
- 微信公众号
- 扫一扫关注微信公众号
-
- 运维交流群
- 扫一扫二维码加入群聊
-




