我有两个跟踪,一个使用TCP和diameter协议,另一个使用SCTP和diameter协议。 我想使用以下代码使用scapy和Python检索所有数据包diameter SCTP:
bind_layers(SCTP, DiamG, dport=port_de_test)
bind_layers(SCTP, DiamG, sport=port_de_test)
bind_layers(TCP, DiamG, dport=port_de_test)
bind_layers(TCP, DiamG, sport=port_de_test)
class CallFlow:
def __init__(self, pcap_adress=""):
portsGx = {4458,3870,3868, 4468, 49857, 48868,59368}
portsGy = {4457, 4467, 49871, 48871}
self.messages = []
try:
if pcap_adress != '':
packets = rdpcap(pcap_adress)
for packet in packets:
if DiamG in packet:
if TCP in packet:
p = packet[TCP]
d = p.payload
if (packet[TCP].sport in portsGx) | (packet[TCP].dport in portsGx):
interface = "Gx"
elif (packet[TCP].sport in portsGy) | (packet[TCP].dport in portsGy):
interface = "Gy"
elif SCTP in packet:
p = packet[SCTP]
d = p.payload
print (d)
if (packet[SCTP].sport in portsGx) | (packet[SCTP].dport in portsGx):
interface = "Gx"
elif (packet[SCTP].sport in portsGy) | (packet[SCTP].dport in portsGy):
interface = "Gy"
else:
print("Diameter should be TCP or SCTP")
`break
当我运行这段代码时,当TCP是传输协议时,我可以得到所有diameter数据包,但当我运行这段代码时,当sctp是传输协议时,我只得到第一条消息,而不是所有的跟踪
你能检查一下这个密码并告诉我出了什么问题吗
谢谢
目前没有回答
相关问题 更多 >
编程相关推荐