Python套接字:接收任何目的地的udp包

2024-10-03 13:23:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我想编写一个在raspberry pi上运行python的包分析器。 它应该分析OSC(开放式声音控制)和Art-Net(舞台灯光协议)。这两个都是UDP包-我使用以下代码,可以在这里找到:http://www.binarytides.com/python-packet-sniffer-code-linux

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_UDP)

while True:
    print s.recvfrom(65565)

如果设计ip是覆盆子派的ip,一切都很好。我想接收网络中所有的udp流量,也包括未寻址到raspberry pi的数据包,以显示由服务器发送到另一个客户端的数据包。在

我能在这里换些什么?在


Tags: 代码ip声音http分析器协议netpi
1条回答
网友
1楼 · 发布于 2024-10-03 13:23:48

嗅探网络与嗅探进入一台机器的数据有点不同。不幸的是,嗅探网络可能需要一些基础设施的改变,而且与编码几乎没有关系(你的代码在没有大的修改的情况下仍然有用)。在

观察以太网

这里需要知道几个术语:collision domainbroadcast domain。如果你的整个网络在同一个冲突域中,只需在网络中添加一个嗅探器,你就可以观察到数据包(至少在wireshark中,不确定你发布的代码)。在

碰撞域不受ehternet hubs的影响。冲突域由活动网络设备(routersswitches)分隔开。广播域由路由器或VLANs之间的交换机分隔开。位于单独的冲突域中意味着您不会看到点到点的数据报。在不同的广播域中意味着你看不到广播和多播数据报。在

如果整个网络连接到单个交换机,则可以在此处设置端口镜像。除了基本的交换过程外,它还将流量从一个eInternet交换机端口(请注意,它是物理端口,而不是TCP/UDP端口)复制到另一个端口。对于Cisco设备,该技术称为SPAN。在

多个交换机+路由器拓扑可能需要在设备上设置多个跨距。如果你有一个单独的机器来协调照明,你可能想把嗅探器放在那里。同样,收集网络流量需要体系结构决策。在

观察无线网络

这可能更简单,因为这样的网络总是有一个冲突域,所以您可以从空中获取数据包。但这种开放性也使无线协议在默认情况下更加安全。因此,如果网络使用安全热点,可能就没有机会嗅探而不犯下不道德的事情。然而,热点是一个路由器,这个路由器可以有线连接到某个交换机。在这里您可以再次使用端口镜像。在

相关问题 更多 >