2016-07-21 3 views
1

scapyを使って作業していて、パケットを構築する方法を学びました。 - それは素晴らしいだろう!ありがとう)。 Scapy - sendp sr1のレポートを非表示にして最終結果を得るにはどうすればいいですか?

は私がscapyの次のコマンドを持っています。層内のARPパケットを送信

srp(Ether(dst='ff:ff:ff:ff:ff:ff')/ARP(pdst=ip)/Padding(load='\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00'),timeout=2) 

2. 私は、その私に次の答えを与えて、このコマンドを実行すると:

WARNING: IPv6宛先のルートが見つかりません::(デフォルトルートなし) 開始発光: * 1パケットを送信するように終了しました。 1つのパケットを受信

は、0のパケット 残りの1件の回答を、得た:50:56:E9:B8:B1

次のコードのために:私はしたい

def Arp_Req(ip): 
     packet = srp(Ether(dst='ff:ff:ff:ff:ff:ff')/ARP(pdst=ip)/Padding(load='\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00'),timeout=2) 
     try: 
       packet[0][0] 
       return packet[0][0][1].hwsrc 
     except IndexError: 
       return "(E2)CANT FIND AN ANSWER FOR "+ip+"." 

すべてのレポートを非表示にして返答のみを出力する。どうしたらいいですか?

答えて

2

ここで出力されるのは、IPv6のために(scapyからの)IPv6サポートを無効にすることで回避できる警告ですが、機能srp()によって生成された出力もあります。 verbose引数を設定します。

from scapy.config import conf 
conf.ipv6_enabled = False 
from scapy.all import * 

def Arp_Req(ip): 
    packet = srp(Ether(dst='ff:ff:ff:ff:ff:ff')/ARP(pdst=ip)/Padding(load='\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00'),timeout=2, verbose=0) 
    try: 
     packet[0][0] 
     return packet[0][0][1].hwsrc 
    except IndexError: 
     return "(E2)CANT FIND AN ANSWER FOR "+ip+"." 

# example 
print Arp_Req("192.168.0.254") 
関連する問題