纯bash可以执行端口扫描吗?

纯bash可以执行端口扫描吗?

不使用任何外部程序,仅使用bash语言,是否可以对远程主机进行端口扫描?

在浏览了 bash 的内置函数之后,我会说:不。但也许有一些解决方法或其他可能的命令可以执行,而这些命令不在 bash 内置命令中。

答案1

您可以使用 Bash 的 TCP 连接支持来检查开放端口:

if 2>/dev/null >"/dev/tcp/${IP}/${PORT}"; then echo open; fi

${PORT}将检查是否可以打开到上端口的连接${IP}

测试本身是通过尝试重定向到来执行的/dev/tcp/${IP}/${PORT};当目标端口不可访问时,将标准错误重定向到/dev/null( ) 会隐藏结果错误消息。2>/dev/null

这可以在循环中使用来扫描所有端口。

相关内容