【发布时间】:2020-10-05 21:48:43
【问题描述】:
出于学习目的,我使用了 bash(4.0.33) 网络支持,并尝试在 bash 中创建端口扫描器。对于 TCP,我使用
打开了一个 TCP/IP 套接字exec 3<>/dev/tcp/192.0.2.1/80
如果连接被拒绝或连接系统调用超时,则会采取适当的措施。但是,使用 UDP,我可以轻松地发送带有
的数据包echo > /dev/udp/192.0.2.1/53
但是如何从正确的套接字读取返回的数据包?我的意思是发送到 192.0.2.1 的 UDP 数据报具有来自临时端口范围的源端口,因此我不知道应该读取 /dev/udp/192.0.2.1/ 目录中的哪个套接字。或者如果没有像 tcpdump 这样的外部实用程序,这是否可行?
【问题讨论】:
-
没有冒犯,但即使你说这是为了学习目的,如果你永远不会使用它,学习有什么意义呢? bash 绝对不是这个的正确选择...
-
@KarolyHorvath 实际上,对于小型和微型 IOT 设备来说,bash 是一个出色的工具,对于许多应用程序来说,bash 都可以很好地处理 UDP。而且,顺便说一句,这不是问题所在:他不是在征求意见。