擅长:python、mysql、java
<p>我自己正处于创建python包解析器/嗅探器的阶段,在我的研究中,我发现,要能够解析所有传入的包,如TCP、ICMP、UDP、ARP等等,您不能使用下面的套接字类型,因为<code>socket.IPPROTO_IP</code>只给出IP包,是一个虚拟协议</p>
<pre><code>s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP)
</code></pre>
<p>相反,您必须使用它并在Linux系统中运行得最好</p>
<pre><code>s = socket.socket( socket.AF_PACKET , socket.SOCK_RAW , socket.ntohs(0x0003))
</code></pre>