マルチホームマシン(複数のインターフェイス)でPythonからDHCPリクエストを直接(ライブラリなしで)送信する方法を学ぼうとしています。pydhcplib を見てきましたが、まだわかりません。
このコードは、特定のインターフェイス (私の場合は eth3 - IP が割り当てられていません) で DHCP パケットを送信しますが、eth0 IP アドレスで送信します。src IP を 0.0.0.0 に変更するには? この例では、dhcp-message が切り捨てられています
LOCAL_PORT=68
SERVER_PORT=67
LOCAL_IP="0.0.0.0"
BCAST_IP="255.255.255.255"
LISTEN_DEV="eth3"
MSG_SIZE=2048
Conn=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
Conn.settimeout(5)
Conn.setsockopt(socket.SOL_SOCKET,IN.SO_BINDTODEVICE,LISTEN_DEV+'\0')
Conn.setsockopt(socket.SOL_SOCKET,socket.SO_BROADCAST,1)
Conn.bind((LOCAL_IP, LOCAL_PORT))
# Create DHCP-Discovery
msg="010106003f7d1664......"
Conn.sendto(msg.decode("hex"),(BCAST_IP,SERVER_PORT))
received = Conn.recv(MSG_SIZE)
Conn.close()