2011-02-24 19 views
1

我想弄清楚如何使用scapy庫來讀取IP標誌(不是TCP)。我知道它存儲在「標誌」中,它是FlagsField類型。根據IP協議規範,有3個標誌R,MF和DF。我搜索,搜索,並找不到任何有關如何閱讀這些標誌的信息。有任何想法嗎?Python:Scapy:如何讀IP標記

謝謝大家的意見。

回答

3

例如,創建與DF(不分段)標誌設置的IP數據包:

>>> packet = IP(flags=2) # alternatively, IP(flags='DF') 
>>> packet 
<IP flags=DF |> 

讀取一個數據包的flags

>>> packet.flags 
2 

至於標誌位,維基百科outlines this簡潔。這是一個三位值,含義如下:

  • bit 0:Reserved;必須爲零。
  • 位1:不分段(DF)
  • 位2:更多片段(MF)
+0

注意,標誌位從最顯著列出的維基百科頁面上最低顯著,所以「MF」映射到1,而不是4。 – claymation 2017-06-19 20:26:10