Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Scapy:如何匹配查询和答案_Python_Networking_Protocols_Scapy - Fatal编程技术网

Python Scapy:如何匹配查询和答案

Python Scapy:如何匹配查询和答案,python,networking,protocols,scapy,Python,Networking,Protocols,Scapy,我正在Scapy中实现一个协议,以下是我迄今为止所做的工作(细节省略): 但是,当我执行sr(IP()/UDP()/ProtocolAction1())时,我永远无法得到答案(尽管服务器发送了答案)。我的目的是获得一个IP()/UDP()/ProtocolAnswer()/ProtocolAction1Answer()。我做错了什么?我如何修复它?您是否查看了相关的Scapy信息?是的,我读过,但似乎我不完全理解。例如,如果我执行:sr(Protocol()),我可以看到ProtocolAnsw

我正在Scapy中实现一个协议,以下是我迄今为止所做的工作(细节省略):


但是,当我执行
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)