我正在尝试学习如何在多宿主机器(多个接口)上直接(无库)从 python 发送 DHCP 请求。我看过 pydhcplib,但还是不明白。
此代码在特定接口上发送 DHCP 数据包(在我的情况下为 eth3 - 未分配 IP),但它使用 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()