1

こんにちは私はscapyが戻ってきているタプルのように見える要素にアクセスしようとする助けが必要です。コードは以下のとおりです。

ans,unans=sr(IP(dst="www.google.com",ttl=5)/ICMP(),verbose=0)
ans.summary(lambda (s,r): r.sprintf("%IP.src%") )

Scapyと入力し、これらのコマンドの両方を手動で入力すると、単一のIPアドレスが返されます。ただし、Pythonスクリプト内から実行しているため、そのIPアドレスを変数として保存する必要があります。これはばかげた質問かもしれません。私はScapyを学んでいますが、scapyを使用してこのIPアドレスを変数として保存するにはどうすればよいですか。私は以下のようなことを達成したいと思っています。

#!/usr/bin/python
from scapy.all import *
ans,unans=sr(IP(dst="www.google.com",ttl=5)/ICMP(),verbose=0)
SourceIP = ans.summary(lambda (s,r): r.sprintf("%IP.src%") )
4

1 に答える 1

3

レイヤーの値が必要な場合は、getlayerメソッドを使用してください。したがって、次のように変更するだけです。

ans = sr1(IP(dst="www.google.com",ttl=5)/ICMP(),verbose=0)
address = ans.getlayer(IP).src

trueまたはfalseを返すレイヤーが存在するかどうかを確認する別の方法もあります。これがその例です。

if ans.haslayer(IP):
    print "Packet has the layer IP"
于 2012-04-29T18:34:02.460 に答える