我想了解如何直接(無庫)從多宿主機器(多接口)上的python發送DHCP請求。 我已經看過pydhcplib,但仍然不明白。Python dhcp客戶端
此代碼在特定接口(在我的情況下爲eth3 - 不分配IP)發送DHCP數據包,但它使用eth0 IP地址發送。如何將我的src IP更改爲0.0.0.0? DHCP消息在這個例子中
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()
是的 - 我知道它的大部分。即使我的代碼(本質上)與您的示例非常相似 - 但示例僅提供單個界面。我仍然需要綁定到一個特定的接口(如我的例子),我想了解爲什麼源IP地址不是0.0.0.0(或如何設置它) –