给定一个网络接口( inet_x ),erlang 中是否有一种本地方式来识别该接口上的所有侦听端口?
可以实现网络扫描功能,扫描从端口 A 到 B 的此类网络接口的 ip 地址(scanner:scan(IpToScan, StartPort, EndPOrt)),但实现这些结果相当慢。
有没有更快/更原生的方法来实现这一目标?我对获得一个列表特别感兴趣,该列表指示类似于 shell 命令的结果。此结果的重要方面还在于端口指示揭示了它是如何侦听的,例如 (*) 指示所有 DNS/IP 地址
netstat - 一个 | grep 听
tcp4 0 0 *.15672 *.* LISTEN
tcp46 0 0 *.52791 *.* LISTEN
tcp46 0 0 *.8181 *.* LISTEN
tcp46 0 0 *.http-alt *.* LISTEN
tcp46 0 0 *.sun-as-jmxrmi *.* LISTEN
tcp46 0 0 *.websm *.* LISTEN
tcp46 0 0 *.eforward *.* LISTEN
tcp46 0 0 *.9095 *.* LISTEN
tcp4 0 0 *.6379 *.* LISTEN
tcp6 0 0 localhost.55202 *.* LISTEN
另外,虽然os 模块很容易使用,但我想避免它。捕获 netstat -a 的操作系统结果很容易,但不是跨平台的。