Python Scapy:如何匹配查询和答案
我正在Scapy中实现一个协议,以下是我迄今为止所做的工作(细节省略):Python Scapy:如何匹配查询和答案,python,networking,protocols,scapy,Python,Networking,Protocols,Scapy,我正在Scapy中实现一个协议,以下是我迄今为止所做的工作(细节省略): 但是,当我执行sr(IP()/UDP()/ProtocolAction1())时,我永远无法得到答案(尽管服务器发送了答案)。我的目的是获得一个IP()/UDP()/ProtocolAnswer()/ProtocolAction1Answer()。我做错了什么?我如何修复它?您是否查看了相关的Scapy信息?是的,我读过,但似乎我不完全理解。例如,如果我执行:sr(Protocol()),我可以看到ProtocolAnsw
但是,当我执行
sr(IP()/UDP()/ProtocolAction1())
时,我永远无法得到答案(尽管服务器发送了答案)。我的目的是获得一个IP()/UDP()/ProtocolAnswer()/ProtocolAction1Answer()
。我做错了什么?我如何修复它?您是否查看了相关的Scapy信息?是的,我读过,但似乎我不完全理解。例如,如果我执行:sr(Protocol()),我可以看到ProtocolAnswer中的函数guess_payload_类是如何执行的,但它从不停止。例如:开始发射:…完成发送1个数据包。答复其中,answer是用ProtocolAnswer.guess_payload_classic编写的跟踪。如果我进行并行嗅探,我可以看到它正确地将数据包标识为应答。但主要的问题仍然存在:当调用sr()时,它从不停止,因为它从不将数据包标识为ProtocolAction1Answer
class Protocol - #Defines some common headers
def guess_payload_class:
return ProtocolAction1
class ProtocolAction1 - #Defines some action to be done by the protocol.
class ProtocolAnswer - #Defines some common headers
def guess_payload_class:
return ProtocolAction1Anser
class ProtocolAction1Answer - #Defines the answer when Action1 has been done.
bind_layers(UDP, Protocol, dport=port)
bind_layers(UDP, ProtocolAnswer, sport=port)