#include <iostream>
#include <tins/tins.h>
using namespace Tins;
using namespace std;
bool callback(const PDU& pdu) {
// Find the IP layer
const IP& ip = pdu.rfind_pdu<IP>();
// Find the TCP layer
const TCP& tcp = pdu.rfind_pdu<TCP>();
cout << ip.src_addr() << ":" << tcp.sport() << " -> "
<< ip.dst_addr() << ":" << tcp.dport() << endl;
return true;
}
int main() {
Sniffer("eth0").sniff_loop(callback);
}
У меня есть код по умолчанию libtins
, но по какой-то причине Sniffer
не определено. Я включил все библиотеки в мой компоновщик.
Также при сборке он выдает следующую ошибку:
-- Build started: Project: Packet Sniffing, Configuration: Debug x64 ------
1>Packet Sniffing.cpp
1>C:\Users\usr\Documents\Code\C++ Projects\static\libtins\include\tins\macros.h(37,10): fatal error C1083: Cannot open include file: 'tins/config.h': No such file or directory
1>Done building project "Packet Sniffing.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Я проверил, и нет файла с именем config.h
, однако есть один называется config.h.in
. Когда я удалил .in
, он дал мне еще одну ошибку:
1>------ Build started: Project: Packet Sniffing, Configuration: Debug x64 ------
1>Packet Sniffing.cpp
1>C:\Users\usr\Documents\Code\C++ Projects\static\libtins\include\tins\config.h(5,1): fatal error C1021: invalid preprocessor command 'cmakedefine'
1>Done building project "Packet Sniffing.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Единственная инструкция, которую я не понял на их веб-сайте , - это когда они говорят
Вам также нужно добавить это макроопределение в ваш проект:
TINS_STATI C
Я точно не знаю, что это значит, поэтому это также может быть проблемой.
Заранее спасибо!