web-dev-qa-db-ja.com

WindowsのIPアドレスを変更するスクリプト

私は自分のコンピューターを使用して、イーサネット経由でハードウェアと通信しています。このデバイスと通信するために、IPv4のIPを192 168 0 11に、サブネットマスクを255 255 255 0に、デフォルトゲートウェイを192 168 01に設定しました。インターネットを利用するには、コントロールパネルから「IPアドレスを自動的に取得する」を選択します。

ハードウェアまたはインターネットのいずれかのイーサネット設定をすばやく選択できるスクリプトが欲しいのですが。

私は主にpythonでプログラミングしますが、バッチファイルソリューションがあるかもしれません。

ありがとう、

バリー。

13
Baz

Python WMIモジュール を使用してこれを行うことができます(これらのスクリプトを実行する前に PyWin32拡張機能 とWMIモジュールをインストールしてください)。ハードウェアデバイスと通信するように設定する方法:

import wmi

# Obtain network adaptors configurations
nic_configs = wmi.WMI().Win32_NetworkAdapterConfiguration(IPEnabled=True)

# First network adaptor
nic = nic_configs[0]

# IP address, subnetmask and gateway values should be unicode objects
ip = u'192.168.0.11'
subnetmask = u'255.255.255.0'
gateway = u'192.168.0.1'

# Set IP address, subnetmask and default gateway
# Note: EnableStatic() and SetGateways() methods require *lists* of values to be passed
nic.EnableStatic(IPAddress=[ip],SubnetMask=[subnetmask])
nic.SetGateways(DefaultIPGateway=[gateway])

IPアドレスの自動取得(DHCP経由)に戻す方法は次のとおりです。

import wmi

# Obtain network adaptors configurations
nic_configs = wmi.WMI().Win32_NetworkAdapterConfiguration(IPEnabled=True)

# First network adaptor
nic = nic_configs[0]

# Enable DHCP
nic.EnableDHCP()

注:本番スクリプトでは、 EnableStatic()SetGateways() および EnableDHCP() によって返される値を確認する必要があります。 (「0」は成功を意味し、「1」は再起動が必要であることを意味し、その他の値はメソッド名でリンクされたMSDNページに記述されています。注:EnableStatic()およびSetGateways()の場合、エラーコードはリストとして返されます)。

Win32NetworkAdapterConfigurationクラスのすべての機能に関する完全な情報は、 MSDNにあります の場合もあります。

注:これをPython 2.7でテストしましたが、PyWIn32およびWMIモジュールがPython 3で利用できるため、これを次の目的で機能させることができるはずです。 Python 3文字列リテラルの前から「u」を削除します。

19
msanders

subprocessモジュールを使用して開始できます

netsh interface ip set address [params]

コマンドラインから([params]なしで)これを開始して、使用方法のヘルプを取得します。その後、あなたはすることができます

import subprocess
subprocess.call("netsh interface ip set address ....".split())

更新:

忙しくてrtfmができない人のために、

netsh interface ip set address lan static 192.168.0.100 255.255.255.0
netsh interface ip set address lan dhcp

ここで、lanは構成するネットワークインターフェースの名前、192.168.0.100はIPアドレス、255.255.255.0はネットワークマスクです。最初のコマンドは静的アドレスを設定し、2番目のコマンドはdhcpに戻ります。

5
rocksportrocker