[英]IPv6 filter in Scapy
我正在使用scapy嗅探具有特定源ip /目標ip的IPv6數據包。
例:
filter1 ="tcp port "+`port`+ " and ip6 host 2001::4 and tcp[tcpflags] & tcp-syn !=0 and !icmp and !arp and not host "+host_ip
a= sniff(count =1,filter=filter1,iface=eth)
這將引發異常,如下所示:scapy.error.Scapy_Exception:篩選器分析錯誤
我從未使用過scapy,但是我在您的filter1
表達式中注意到您具有:
+`port`+
...但是您有:
+host_ip
也許您需要在host_ip周圍host_ip
?
如果這不是問題,您也可以嘗試在工具中使用捕獲之前,使用tcpdump之類的工具來驗證捕獲過濾器,例如tcpdump -d ${filter1}
或dumpcap dumpcap -d ${filter1}
。
對於復雜的過濾器,scapy允許您使用python函數作為過濾器:
desiredip = "2001::4"
undesiredip = host_ip
def isMyPacket (pkt):
if IPv6 in pkt:
pktip6 = pkt[IPv6]
if pktip6.src == desiredip or pktip6.dst == desiredip:
if pktip6.src != undesiredip and pktip6.dst != undesiredip:
if TCP in pktip6:
if pktip6[TCP].flags & 0x02: #Check if it is a SYN
return True #If all conditions are met
return False
a= sniff(count =1,lfilter=isMyPacket,iface=eth)
無論如何,您無需檢查它是arp還是icmp:如果是TCP,則可以確定它不是arp還是icmp。
有關Scapy中TCP標志的更多信息: 使用Scapy獲取TCP標志
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.