1. 程式人生 > 其它 >python 呼叫dos修改IP 、閘道器 、子網掩碼

python 呼叫dos修改IP 、閘道器 、子網掩碼

想要修改成功,必須用管理員才行;

有2種方法:1)python要呼叫管理員視窗  ; 2)寫好後的py檔案用管理員執行;

方法1

import ctypes, sys, os, time
import datetime

cmd1 = "netsh interface ip set address \"VMware Network Adapter VMnet8\" static "
cmd2 = " 255.255.255.0 192.168.109.1"
def is_admin():
    try:
        print("admin-",datetime.datetime.now().strftime("
%Y-%m-%d %H:%M:%S.%f")) return ctypes.windll.shell32.IsUserAnAdmin() except: time.sleep(2) print("no admin-",datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f")) return False def admin_exe(cmd) : print('先進入EXE ',datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f
")) if is_admin(): print("admin_exe函式內,以管理員許可權執行 " ,datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f")) time.sleep(10) os.system(cmd) print("執行了更改IP語句 ",datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f")) time.sleep(30) print("時間結束,彈窗消失
",datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f")) time.sleep(2) else: if sys.version_info[0] == 3: print('admin_exe函式內,還沒有管理員許可權 ',datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f")) ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1) print("執行了管理員身份語句",datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f")) def getIP(ip): return ip if __name__ == '__main__': print("admin_exe前",datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f")) global deviceIP
# 輸入要修改的IP str
= input("tipmsg:") deviceIP = str cmd = cmd1+deviceIP+cmd2 print(cmd) admin_exe(cmd) print("admin_exe後",datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f"))

解析:

1) 通過main進入,輸入IP,先判斷是否為管理員,如果不是執行升級為管理員身份語句 :ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1);此時就打開了管理員視窗。

2)程式自動再次進入main方法(此時是管理員視窗);輸入IP,執行修改IP命令;

程式碼解析:

 

 

dos修改IP語句解釋 ,請參考:

https://www.cnblogs.com/ychun/p/16143627.html  

 

文章參考:https://blog.csdn.net/qq_43909184/article/details/107424740

 

 

 

 以管理員執行操作,請參考如下:

https://blog.csdn.net/xuhui_liu/article/details/73832743

https://blog.csdn.net/qq_42028065/article/details/102958208