lzmomo 发表于 2024-5-13 16:06

python如何重启计算机网络

一个简单的重启网络连接的脚本,只会重启包含‘以太网’的网络。
还处于初学阶段,希望大家提些意见。

import subprocess
from time import sleep
import psutil

# 获取所有网络接口的信息
network_interfaces = psutil.net_if_addrs()

# 打印每个网络接口的名称
for interface_name, interface_data in network_interfaces.items():
    print(interface_name)

    if '以太网' in interface_name:
      subprocess.run(f'netsh interface set interface "{interface_name}" admin=disable', shell=True)

      subprocess.run(f'netsh interface set interface "{interface_name}" admin=enable', shell=True)

    sleep(5)

miraak 发表于 2024-5-13 18:39

你其实可以考虑用powershell。

52zct 发表于 2024-5-13 20:10

我最近写了好几个实现类似功能的,但是经常不管用,我写的代码有
@echo off
echo 正在禁用无线网卡...
netsh interface set interface name="WLAN" admin=disabled

timeout /t 1

echo 正在启用无线网卡...
netsh interface set interface name="WLAN" admin=enabled

echo 操作已完成。
pause

@echo off
rem 使用PowerShell执行netsh命令以禁用WLAN接口
powershell -Command "netsh interface set interface name='WLAN' admin=disabled"
rem 延迟一段时间(可选,用于确保更改生效)
ping 127.0.0.1 -n 2 > nul
rem 使用PowerShell执行netsh命令以启用WLAN接口
powershell -Command "netsh interface set interface name='WLAN' admin=enabled"

echo WLAN接口已通过PowerShell命令成功进行禁用与启用操作。
pause

powershell -Command "netsh interface set interface name='WLAN' admin=disabled"
powershell -Command "netsh interface set interface name='WLAN' admin=enabled"


这些代码,都是时灵时不灵

后来我直接把它创建了桌面快捷键

https://s21.ax1x.com/2024/05/13/pkmKhKP.png

kings0b 发表于 2024-5-14 08:49

学到了!!!!

lzmomo 发表于 2024-5-14 09:18

本帖最后由 lzmomo 于 2024-5-14 09:19 编辑

52zct 发表于 2024-5-13 20:10
我最近写了好几个实现类似功能的,但是经常不管用,我写的代码有
@echo off
echo ...
要不你都用管理员权限运行试试?
直接用bat脚本更简单呢

@echo off
echo "重启网络"
netsh interface set interface "以太网" disabled
netsh interface set interface "以太网" enabled

52zct 发表于 2024-5-14 13:57

lzmomo 发表于 2024-5-14 09:18
要不你都用管理员权限运行试试?
直接用bat脚本更简单呢



我是使用管理员运行的,但是时行时不行,很奇怪,很可能是被360拦截了

lzmomo 发表于 2024-5-14 19:29

52zct 发表于 2024-5-14 13:57
我是使用管理员运行的,但是时行时不行,很奇怪,很可能是被360拦截了

完全可能

halolo 发表于 2024-5-14 23:10

你这样其实还是调了OS自己的指令去重启的网络,建议你考虑下怎么使用Python的api来实现同样的功能。

lzmomo 发表于 2024-5-15 16:48

halolo 发表于 2024-5-14 23:10
你这样其实还是调了OS自己的指令去重启的网络,建议你考虑下怎么使用Python的api来实现同样的功能。
不太懂,可以举例吗?
页: [1]
查看完整版本: python如何重启计算机网络