IPのpythonプログラムの設定
1980 ワード
IP(有線)を修正するのは面倒なことで、特にノートパソコンを抱いて異なるローカルエリアネットワークの間を歩き回る.IPを修正するPython 3プログラムを紹介し、使用経験を紹介します.コードは次のとおりです(setip.py):
プログラムはコマンドラインパラメータで実行され、パラメータはプロファイルです.プログラムはプロファイルから設定を読み出し、netshコマンドで設定します.プロファイルがない場合は自動取得に設定します.
注意点:プログラムはnetsh命令に依存し、Windowsプラットフォームでしか使用できない. プログラムは名前(「ローカル接続」)に対して何の処理もしていない. プログラムはエラーを検査しなかった. ショートカットまたはbatファイルを通じて、プログラムとプロファイルを組み合わせて、クリックを実現すれば切り替えることができます. IPを変更するには管理者権限が必要です.ショートカットを定義し、「プロパティ」->「詳細」で「管理者として実行」を選択すると、ショートカットを実行するとパスワードの入力を求めるメッセージが表示されます.
''' Windows netsh
setip.py [config]
'''
import sys
import os
def setDns(config):
'''config = (name,dns)'''
if config[1]:
cmd = 'netsh interface ip set dns name=%s'\
' source=static %s primary' % config
else:
cmd = 'netsh interface ip set dns name=%s source=dhcp' % config[0]
os.system(cmd)
def setIp(config):
'''config = (name,ip,mark,gateway)'''
if config[1]:
cmd = 'netsh interface ip set address name=%s'\
' source=static %s %s %s 1' % config
else:
cmd = 'netsh interface ip set dns name=%s source=dhcp' % config[0]
os.system(cmd)
def setConfig(config):
setIp(config[0:4]);
setDns((config[0], config[4]))
def loadConfig(filename):
with open(filename) as f:
name = " "
ip = f.readline().strip()
mark = f.readline().strip()
gateway = f.readline().strip()
dns = f.readline().strip()
return (name, ip, mark, gateway, dns)
if __name__ == "__main__":
if len(sys.argv) > 1:
ipConfig = loadConfig(sys.argv[1])
else:
ipConfig = (" ", "", "", "", "")
setConfig(ipConfig)
os.system("pause")
プログラムはコマンドラインパラメータで実行され、パラメータはプロファイルです.プログラムはプロファイルから設定を読み出し、netshコマンドで設定します.プロファイルがない場合は自動取得に設定します.
注意点: