Sockets 在socket()中使用GGP(0x0003)作为协议参数的目的是什么
我开始编写一个数据包嗅探器,并搜索要传递到Sockets 在socket()中使用GGP(0x0003)作为协议参数的目的是什么,sockets,winapi,networking,packets,sniffer,Sockets,Winapi,Networking,Packets,Sniffer,我开始编写一个数据包嗅探器,并搜索要传递到socket()函数的正确参数,以便用以太网报头捕获数据包 我注意到,为了接收以太网报头,他们更改了这一行: s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP) s = socket.socket( socket.AF_PACKET , socket.SOCK_RAW , socket.ntohs(0x0003)) 关于这一行: s = socket.socke
socket()
函数的正确参数,以便用以太网报头捕获数据包
我注意到,为了接收以太网报头,他们更改了这一行:
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP)
s = socket.socket( socket.AF_PACKET , socket.SOCK_RAW , socket.ntohs(0x0003))
关于这一行:
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP)
s = socket.socket( socket.AF_PACKET , socket.SOCK_RAW , socket.ntohs(0x0003))
我的问题是:
AF\u INET
不会给我以太网报头。我的问题是为什么
IPPROTO_TCP
更改为ntohs(0x0003)
,我知道这是GGP协议。据我所知,第三个参数表示套接字将接收的协议。如果协议参数是GGP,那么套接字将查找具有GGP作为其internet层协议的数据包,不是吗?那为什么他们通过GGP而不是TCP或IP呢?毕竟,几乎每个PDU都有IP和\或TCP\UDP作为其数据协议。。我的包嗅探器的第三个参数是什么重要吗
getproent()
,而不是使用幻数getproent()
,而不是使用幻数#define ETH_P_ALL 0x0003 /* Every packet (be careful!!!) */
所以ETH_p_ALL的值是0x0003。本教程的作者使用0x0003而不是ETH_P_ALL,因为在某些系统中,在python中使用时会出现“未定义”错误 如果您查看,您将看到
#define ETH_P_ALL 0x0003 /* Every packet (be careful!!!) */
所以ETH_p_ALL的值是0x0003。本教程的作者使用0x0003而不是ETH_P_ALL,因为在某些系统中,在python中使用时会出现“未定义”错误 那么根据你的第三个答案,为什么他(在网站示例中)将协议更改为GGP?为什么数据包嗅探器会寻找GGP数据包,而不是IP,因为IP几乎是每个数据包的一部分,所以IP更为常见?我不知道你网站的作者为什么会这样做,而且我遇到了很多关于这个主题的低质量或过时的教程,如果我是你,我不会太在意…:-)很抱歉,教程似乎没有这么好;它是Python 2,写于2011年,代码看起来很难看……所以如果我把IPPROTO_IP放进去,它不会给我的包嗅探器带来任何问题吗?我将能够捕获所有协议,其中包括IP作为其internet层协议(不知道其他层中的协议是什么),并且使用AF_数据包和SOCK_RAW选项,我也将能够获取以太网报头?基本上是的。我在这里找到了一个更好的文档参考,其中包含了大量或更少的最新示例:这将对您有很大帮助。因此,根据您的第三个答案,为什么他(在网站示例中)将协议更改为GGP?为什么数据包嗅探器会寻找GGP数据包,而不是IP,因为IP几乎是每个数据包的一部分,所以IP更为常见?我不知道你网站的作者为什么会这样做,而且我遇到了很多关于这个主题的低质量或过时的教程,如果我是你,我不会太在意…:-)很抱歉,教程似乎没有这么好;它是Python 2,写于2011年,代码看起来很难看……所以如果我把IPPROTO_IP放进去,它不会给我的包嗅探器带来任何问题吗?我将能够捕获所有协议,其中包括IP作为其internet层协议(不知道其他层中的协议是什么),并且使用AF_数据包和SOCK_RAW选项,我也将能够获取以太网报头?基本上是的。我在这里找到了一个更好的文档参考,其中包含了大量或更少的最新示例:它将对您有很大帮助。