Wireshark/tcpdump/libpcap在Linux内核中的哪里拦截数据包?

您所在的位置:网站首页 tcpdump导出文件 Wireshark/tcpdump/libpcap在Linux内核中的哪里拦截数据包?

Wireshark/tcpdump/libpcap在Linux内核中的哪里拦截数据包?

2023-03-11 23:50| 来源: 网络整理| 查看: 265

根据这个,Wireshark是能够将数据包之前,(我自己因此我不能让这样的数据包)下降。而且我仍然想知道wireshhark在Linux内核中的确切位置以获取数据包。

答案是“在UN * Xes上,它使用libpcap,而在Linux上,它使用AF_PACKET套接字。” 有谁有使用“ AF_PACKET套接字”的更具体示例?如果我正确理解Wireshark,则网络接口卡(NIC)会复制所有传入数据包,并将其发送到用户定义的过滤器(伯克利数据包过滤器)。但是,这发生在哪里呢?还是我对这种理解有误,在这里我想念什么吗?

提前致谢!

1> Roman Zaitse..:

但是,这发生在哪里呢?

如果我正确理解了您-您想知道,在哪里初始化这样的套接字。 有一个pcap_create 函数,它试图确定源接口的类型,创建它的副本并激活它。 对于网络,请参见pcap_create_interface function => pcap_create_common function => pcap_activate_linux function。 所有初始化发生在pcap_activate_linux=> activate_new 功能 => iface_bind 功能 (与设备的复制描述符handlep->device = strdup(device);, 创建具有插座socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_ALL)), 结合到插座装置与bind(fd, (struct sockaddr *) &sll, sizeof(sll)))。 有关更多详细信息,请阅读所提及功能的源文件中的注释-它们非常详细。 初始化后,所有工作都在一组功能如pcap_read_linux等



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3