python ping网络情况,多个ping,并将结果存在log文件中
时间: 2024-05-10 18:20:47 浏览: 8
以下是一个Python程序,可以通过ping多个IP地址,并将结果存储到一个日志文件中。
```python
import subprocess
import datetime
# 定义要ping的IP地址列表
ip_list = ["www.google.com", "www.baidu.com", "www.github.com"]
# 打开日志文件
log_file = open("ping_log.txt", "a")
# 循环ping每个IP地址
for ip in ip_list:
# 使用ping命令测试网络连接,并将结果保存到result变量中
result = subprocess.run(['ping', '-c', '3', ip], stdout=subprocess.PIPE).stdout.decode('utf-8')
# 获取当前时间戳
timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# 将结果写入日志文件
log_file.write(f"[{timestamp}] Ping {ip}:\n{result}\n")
# 关闭日志文件
log_file.close()
```
这个程序使用了subprocess模块来执行ping命令,并将结果存储在一个字符串变量中。然后,它获取当前时间戳,并将结果写入一个日志文件中。在循环结束时,程序关闭日志文件。
相关问题
python文件每2s记录cpu利用率,内存占用率,网络连通情况
可以使用Python的psutil和time模块实现每隔2秒记录一次CPU利用率、内存占用率和网络连通情况。具体实现如下:
```python
import psutil
import time
while True:
# 获取CPU利用率
cpu_percent = psutil.cpu_percent(interval=1)
# 获取内存占用率
mem_info = psutil.virtual_memory()
mem_percent = mem_info.percent
# 检查网络连接
google_dns = "8.8.8.8"
response = os.system("ping " + google_dns)
if response == 0:
network_status = "Connected"
else:
network_status = "Disconnected"
# 记录数据
with open("system_info.log", "a") as f:
f.write("CPU utilization: {}%\n".format(cpu_percent))
f.write("Memory usage: {}%\n".format(mem_percent))
f.write("Network status: {}\n".format(network_status))
# 暂停2秒
time.sleep(2)
```
这段代码会不断地记录CPU利用率、内存占用率和网络连通情况,并且将结果写入到一个名为`system_info.log`的文件中。可以使用Ctrl+C来停止程序的执行。
在原来脚本里面添加断网记录(添加一个log文件夹)
好的,我理解您的需求是希望在原有的脚本中添加记录断网的功能,并将记录保存在一个名为“log”的文件夹中。
以下是示例代码,您可以根据您的实际情况进行调整:
```python
import os
import time
# 创建名为“log”的文件夹
if not os.path.exists("log"):
os.makedirs("log")
while True:
# 判断是否能够连接到百度网站
response = os.system("ping -c 1 www.baidu.com")
if response == 0:
print("网络连接正常")
else:
# 获取当前时间
current_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
# 记录断网信息
with open("log/network.log", "a") as f:
f.write(f"[{current_time}] 网络连接中断\n")
print("网络连接中断,已记录到日志文件中")
# 每隔10秒检测一次网络连接状态
time.sleep(10)
```
以上代码中,我们使用了操作系统中的`ping`命令来检测网络连接状态,如果无法连接到百度网站,则认为网络连接中断,并将当前时间和一段文字记录到名为“network.log”的文件中。同时,程序会每隔10秒重新检测一次网络连接状态。您可以将这段代码保存为一个名为“check_network.py”的文件,并在命令行中运行它来检测网络连接状态并记录断网信息。