Python 中的出站 UDP 数据包嗅探器?
我想弄清楚我的电脑是否在我的网络上引发了一种叫做UDP洪水攻击的情况。所以这就是我的根本问题,接下来我会用python尝试提出一个解决方案,虽然我对网络方面不是很了解。我是从python食谱中的第13.1条(“通过Socket数据报传递消息”)中得到灵感的(也可以在这里找到)。
我想知道用python写一个出站UDP代理是否可行、合理,或者说不疯狂,这样我就可以在数据包发送之前记录它们。如果可以的话,我该怎么做呢?根据我快速的研究,我可能可以启动一个服务器进程,监听可疑的UDP端口,并记录发送的任何内容,然后再转发出去,比如:
import socket
s =socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(("", MYPORT))
while True:
packet = dict(zip('data', 'addr'), s.recvfrom(1,024))
log.info("Recieved {data} from {addr}.".format(**packet))
但是同时处理大量端口这样做可行吗?会不会太麻烦?有没有什么缺点或者其他原因让我不去做这个?有没有更好的方法来解决这个问题(请温柔点)?