私は自分のコンピューターを使用して、イーサネット経由でハードウェアと通信しています。このデバイスと通信するために、IPv4のIPを192 168 0 11に、サブネットマスクを255 255 255 0に、デフォルトゲートウェイを192 168 01に設定しました。インターネットを利用するには、コントロールパネルから「IPアドレスを自動的に取得する」を選択します。
ハードウェアまたはインターネットのいずれかのイーサネット設定をすばやく選択できるスクリプトが欲しいのですが。
私は主にpythonでプログラミングしますが、バッチファイルソリューションがあるかもしれません。
ありがとう、
バリー。
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」を削除します。
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に戻ります。