Python运行bat脚本控制网卡的禁用/启用


禁用/启用网卡bat脚本

        “disabled”为禁用,“enable”为启用,“以太网”为网络连接的名称,视情况修改。将下面的代码分别写入两个文本中,并分别重命名文本为“disconnect.bat”和“connect.bat”,代码中已写入“以管理员身份运行”功能:

禁用网卡代码

cd /d %~dp0

%1 start “” mshta vbscript:createobject(“shell.application”).shellexecute(“””%~0″””,”::”,,”runas”,1)(window.close)&exit

netsh interface set interface 以太网 disabled

启用网卡代码

cd /d %~dp0

%1 start “” mshta vbscript:createobject(“shell.application”).shellexecute(“””%~0″””,”::”,,”runas”,1)(window.close)&exit

netsh interface set interface 以太网 enabled

 

Python 运行bat脚本

        对于非固定IP的宽带用户,通过禁用网卡再重新启用网卡,可以重新获取IP,从而实现IP的切换,在爬取网络资源的时候或许会有用哦~  需要注意的是网卡禁用后的停留时间和启用后连接网络的时间。禁用后如果立即启用,IP或许并未切换;启用后也需要一定的时间才能连接上网络,如果还未联网就运行后面的爬取代码就会出现程序中断报错,所以time.sleep()需根据情况设置。以下代码在Windows 10 Enterprise LTSC 2019、Python 3.6.5下运行正常,其他环境自测:

代码:

import subprocess
import time
# 网卡开关,value等于0表示禁用,其他数值表示启用。
def NetworkSwich(value):

if value == 0:

subprocess.Popen(“cmd.exe /c” + “D:\\PyProjects\\disconnect.bat”, stdout=subprocess.PIPE, stderr = subprocess.STDOUT)

else:

subprocess.Popen(“cmd.exe /c” + “D:\\PyProjects\\connect.bat”, stdout=subprocess.PIPE,stderr = subprocess.STDOUT)

if __name__ == ‘__main__’:

NetworkSwich(0)
time.sleep(10)

 

点赞