C++ libtins ARP请求检测
首先,我是个新手,所以要温柔。。。。我正在使用libtins库的包装器。我希望能够检测arp请求,并获得发送方的mac地址。我已经链接了libtin并运行了我的代码,我能够检测到dot11framebeacon并获得硬件地址,所以我认为结构上一切正常 这是我注册ARP请求的代码C++ libtins ARP请求检测,c++,packet-capture,openframeworks,packet-sniffers,arp,C++,Packet Capture,Openframeworks,Packet Sniffers,Arp,首先,我是个新手,所以要温柔。。。。我正在使用libtins库的包装器。我希望能够检测arp请求,并获得发送方的mac地址。我已经链接了libtin并运行了我的代码,我能够检测到dot11framebeacon并获得硬件地址,所以我认为结构上一切正常 这是我注册ARP请求的代码 class ofxSnifferARPRequestFrame { public: bool isValid = false; string ssid; HWAddress<6>
class ofxSnifferARPRequestFrame {
public:
bool isValid = false;
string ssid;
HWAddress<6> addr;
ofxSnifferARPRequestFrame() {}
ofxSnifferARPRequestFrame(Packet packet) {
try {
packet.pdu()->rfind_pdu<Tins::ARP>();
cout<<"ARP REQUEST RECEIVED"<<endl;
const Tins::ARP &data = packet.pdu()->rfind_pdu<Tins::ARP>();
addr = get_dst_addr_ARP(data);
isValid = true;
} catch (...) {
}
}
};
XsnifferArpRequestFrame的类{
公众:
bool isValid=false;
字符串ssid;
地址地址;
ofxSnifferARPRequestFrame(){}
ofxSnifferARPRequestFrame(数据包){
试一试{
packet.pdu()->rfind_pdu();
coutrfind_pdu();
ssid=data.ssid();
addr=获取src addr(数据);
isValid=true;
}捕获(…){
}
}
};
干杯好的,这没那么复杂,我在启用监控模式的情况下初始化我的嗅探器,以侦听ARP请求嗅探器不应该启用监控模式。我的初始化代码不在最初的问题中,因此无法从我发布的代码中解决这个问题-我的错误 我解决了这个问题,再次通过wirecast进行检查,发现当我收到arp请求通知时,我的wifi没有处于监控模式
packet.pdu()->rfind_pdu<Tins::ARP>();
class ofxSnifferProbeRequestFrame {
public:
bool isValid = false;
string ssid;
HWAddress<6> addr;
ofxSnifferProbeRequestFrame() {}
ofxSnifferProbeRequestFrame(Packet packet) {
try {
packet.pdu()->rfind_pdu<Tins::Dot11ProbeRequest>();
const Tins::Dot11ManagementFrame &data = packet.pdu()->rfind_pdu<Tins::Dot11ManagementFrame>();
ssid = data.ssid();
addr = get_src_addr(data);
isValid = true;
} catch (...) {
}
}
};