2017-01-13 30 views

回答

1

約PER,

存在這樣對待這個包了一下。 您可以通過使用達到它:

FCfield & 0x8 

下面是一個例子代碼(你需要import matplotlib.pyplot as plt):

def foo(self): 
    number_of_pkts = len(self.pcap_file) 
    retransmission_pkts = 0 

for pkt in self.pcap_file: 
    # cecking if the retransmission flag is on 
    if (pkt[Dot11].FCfield & 0x8) != 0: 
     retransmission_pkts += 1 

ans = (retransmission_pkts/number_of_pkts)*100 
ans = float("%.2f" % ans) 
labels = ['Standard packets', 'Retransmitted packets'] 
sizes = [100.0 - ans,ans] 


colors = ['g', 'r'] 

# Make a pie graph 
plt.clf() 
plt.figure(num=1, figsize=(8, 6)) 
plt.axes(aspect=1) 
plt.suptitle('Retransmitted packet', fontsize=14, fontweight='bold') 
plt.rcParams.update({'font.size': 13}) 
plt.pie(sizes, labels=labels, autopct='%.2f%%', startangle=60, colors=colors, pctdistance=0.7, labeldistance=1.2) 

plt.show()