我想构建一个定期使用 nmap 进行 ping 扫描的东西,以检测主机出现和断开网络。有没有一种简单的方法可以读取 Ruby 的 nmap 输出?我的偏好是避免使用 3rd 方库。
非常感谢!
我想构建一个定期使用 nmap 进行 ping 扫描的东西,以检测主机出现和断开网络。有没有一种简单的方法可以读取 Ruby 的 nmap 输出?我的偏好是避免使用 3rd 方库。
非常感谢!
你可以尝试这样的事情:
require 'open3'
stdin, stdout, stderr = Open3.popen3('nmap -sP 192.168.1.0/24')
然后你可以解析 stdout 和 stderr 并使用标准 Ruby 获得任何你想要的东西。
已经了解到,只需在命令周围使用反引号,我就可以将输出捕获为变量:
test = nmap -sP 192.168.1.0/24
p 'test:' puts test.split("\n")
似乎工作完美。然而,正如 bonsaiviking 所指出的,研究 nmap 的 XML 功能是明智的。