我正在使用scapy嗅探功能来使用Amazon Dash按钮来触发功能。我正在使用的代码基本上完全来自Github的解决方案,并进行了一些非常小的调整。
我已经使用了线鲨,发现了破折号按钮的DHCP请求并从此处拉出了按钮的MAC地址,但该功能仍未返回任何内容。
以下是代码:
import logging
logging.getLogger('scapy.runtime').setLevel(logging.ERROR)
from scapy.all import *
def dash_pressed():
print 'Dash button pressed.'
def udp_filter(pkt):
options = pkt[DHCP].options
for option in options:
if isinstance(option, tuple):
if 'requested_addr' in option:
mac_to_action[pkt.src]()
break
mac_to_action = {'DASH_MAC_ADDRESS_HERE' : dash_pressed}
mac_id_list = list(mac_to_action.keys())
print 'Waiting for a button press...'
sniff(prn=udp_filter, store=0, filter='udp', lfilter=lambda d: d.src in mac_id_list)
(替换了mac_to_action dict中的MAC地址字符串)
我没有收到任何错误,只是没有任何错误。当我打印嗅探功能时,它显示0 udp数据包。我已经对我的MAC地址进行了两次和三次检查,这绝对是源地址(不管怎样我都可以将它与ff:ff:ff:ff:ff:ff混合)。为什么不按下短按按钮?
答案 0 :(得分:0)
此代码适用于我的亚马逊按钮
<script type="module" src="module.js"></script>
<script nomodule src="fallback.js"></script>
我不确定问题是否存在ARP / DHCP差异。 可能是您运行没有root权限的代码或执行其他阻止scapy正常工作的代码。