Ошибки при компиляции кода на роутере
Есть код:
#include <iostream>
#include <pcap.h>
#include <arpa/inet.h>
#include <netinet/ip.h>
class PacketCapture {
public:
PacketCapture(const char* device) {
char errbuf[PCAP_ERRBUF_SIZE];
handle = pcap_open_live(device, BUFSIZ, 1, 1000, errbuf);
if (handle == nullptr) {
std::cerr << "Could not open device " << device << ": " << errbuf << std::endl;
exit(1);
}
}
~PacketCapture() {
pcap_close(handle);
}
void startCapture() {
pcap_loop(handle, 0, PacketCapture::packetHandler, nullptr);
}
private:
pcap_t* handle;
static void packetHandler(u_char* args, const struct pcap_pkthdr* header, const u_char* packet) {
std::cout << "Packet captured: " << header->len << " bytes" << std::endl;
// Пример доступа к IP-заголовку
struct ip* ipHeader = (struct ip*)(packet + 14); // Пропустить заголовок Ethernet (14 байт)
char sourceIP[INET_ADDRSTRLEN];
char destIP[INET_ADDRSTRLEN];
inet_ntop(AF_INET, &ipHeader->ip_src, sourceIP, INET_ADDRSTRLEN);
inet_ntop(AF_INET, &ipHeader->ip_dst, destIP, INET_ADDRSTRLEN);
std::cout << "Source IP: " << sourceIP << ", Destination IP: " << destIP << std::endl;
}
};
int main(int argc, char* argv[]) {
if (argc != 2) {
std::cerr << "Usage: " << argv[0] << " <interface>" << std::endl;
return 1;
}
PacketCapture packetCapture(argv[1]);
packetCapture.startCapture();
return 0;
}
У меня возникают ошибки, связанные с библиотекой pcap, при компиляции этого кода на роутере.
Библиотеку pcap грузил ручками, так как opkg install libpcap дала ровно ноль результатов.
При компиляции выдаёт следующие ошибки: