2015-09-27 172 views
0

我有這樣的腳本:Python的3.4 Scapy的發送ARP數據包

from scapy.all import * 
def ip1(ip): 
    pkt = send(ARP(op=ARP.who_has, psrc="192.168.5.51", pdst=ip)) 
    x = sniff(filter="arp", count=10) 
    print (x.summary()) 
    print ("done") 

ip1("192.168.5.46") 

現在,它被卡在發送線路:它說:

. Sent 1 packets. 

但不會繼續腳本(它並不真正發送數據包)。當我按Ctrl + C腳本,然後發送數據包並打印x.summary()並打印完成....我想知道爲什麼 提前致謝。

編輯:答案是關於sr(),sr1(),srp()和srp1()函數嗎?

回答

1

. Sent 1 packets.」輸出實際上證明腳本發送了數據包。但是,它被卡在sniff函數上,直到Ctrl-C被擊中。除非timeout參數另有指定,否則此函數會觸發無盡的嗅探操作。

Scapy's official API documentation寫着:

timeout:停止給定的時間後嗅探(默認:None)。