Python更新列表值通过Scapy中的函数解码

时间:2018-08-31 21:10:28

标签: python scapy rtp

您好,我在Scapy中使用函数

RTP(pl[0]['UDP'].payload).timestamp

这有效,并且在本示例中,按预期返回2983999523

我想将此值设置为0

RTP(pl[0]['UDP'].payload).timestamp = 0

这不起作用...我认为这与我使用函数设置列表值的方式有关...?这有可能吗?

https://fossies.org/linux/scapy/scapy/layers/rtp.py

有什么想法吗?

感谢advacne

尼尔

2 个答案:

答案 0 :(得分:0)

RTP()是一个可能返回具有参数timestamp的类的函数。理论上应该可以更改该参数:

foo = RTP(pl[0]['UDP'].payload)
foo.timesamp
    > 2983999523
foo.timestamp = 0
foo.timesamp
    > 0

在这种情况下,我不知道这是否有用,因为我不知道您要使用timestamp = 0做些什么,但是也许您可以使它适应您的目的。

编辑-扩展功能:

def RTP2(obj):
    result = RPT(obj)
    result.timestamp = 0
    return result

答案 1 :(得分:0)

我不太了解Scapy python库如何与图层一起使用。

发布我的完整代码来处理RTP标头,因为它需要大量的反复试验和少量信息才能对其进行排序...虽然有点黑,但它确实可行,可能会对其他人有所帮助。

>>> model.get_weights()
[array([[ 0.9761261 , -0.7472908 ],
        [-0.12295872,  0.39413464],
        [-0.16676795,  0.30844116]], dtype=float32),
 array([-0.00581209,  0.00300716], dtype=float32),
 array([[-0.31789184],
        [-0.87912357]], dtype=float32),
 array([0.00628144], dtype=float32),
 array([[-1.0932552 ],
        [ 0.11788104]], dtype=float32),
 array([0.00575602], dtype=float32)]