问题描述
我在 python 2.7 中编程,我试图编写一个函数,从 DHCP 服务器请求 ip 地址,问题是在我发送数据包并嗅探 DHCP 后,嗅探没有抓住它(我可以在wireshark上看到报价),我不知道为什么,我的一个朋友告诉我,也许,因为网络不是那么加载,DHCP报价响应太快(在DHCP-descover和报价之间)根据wireshark的说法,有0.000335059秒)并且在报价后嗅探开始工作 到达的。 首先,这是真的吗? 如果这是真的,我该如何解决? 这是脚本
def get_ip_address(mac):
ethernet = Ether(dst='ff:ff:ff:ff:ff:ff',src=myMac,type=0x800)
ip = IP(src='0.0.0.0',dst='255.255.255.255')
udp = UDP(sport=68,dport=67)
bootp = BOOTP(chaddr=mac,ciaddr='0.0.0.0',xid=0x01020304,flags=1)
dhcp = DHCP(options=[("message-type","discover"),"end"])
packet = ethernet / ip / udp / bootp / dhcp
**sendp(packet,iface=myInterface)**
**a= sniff(count=1,iface=myInterface,filter="(udp) and(port 67 or port 68)")**
dhcp1 = DHCP(options=[("message-type","request"),("server_id",a[BOOTP][0][3].siaddr),("requested_addr",a[BOOTP][0][3].yiaddr),"end"])
req_packet = ethernet / ip / udp / bootp / dhcp1
sendp(req_packet,iface=myInterface)
returned_ip = a[BOOTP][0][3].yiaddr
return returned_ip
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)