gpt4 book ai didi

c - AF_PACKET 套接字未接收 IPv6 数据包

转载 作者:行者123 更新时间:2023-11-30 16:43:37 24 4
gpt4 key购买 nike

我试图使用 AF_PACKET 原始套接字嗅探网络流量。我能够获取所有 IP/ARP 数据包,但根本无法获取任何 IPv6 数据包。我需要做什么才能获得 IPv6 流量吗?

   unsigned char buffer[65536];
int sock_raw = socket( AF_PACKET , SOCK_RAW , htons(ETH_P_ALL)) ;

if (sock_raw < 0)
{
perror("socket error!");
return 1;
}

while (1)
{
struct sockaddr saddr;
int saddr_size, data_size;

data_size = recvfrom(sock_raw, buffer, 65536, 0, &saddr, (socklen_t *)&saddr_size);

if (data_size >= 0)
{
ProcessPacket(buffer, data_size);
}
}

最佳答案

我的错。 IPv6有不同的以太网协议(protocol):ETH_P_IPV6而不是ETH_P_IP,我只是在寻找ETH_P_IP数据包!添加 ETH_P_IPv6 的情况解决了这个问题!

关于c - AF_PACKET 套接字未接收 IPv6 数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45086073/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com