首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用awk到表的nmap输出

用awk到表的nmap输出
EN

Unix & Linux用户
提问于 2020-05-10 20:12:58
回答 2查看 1.4K关注 0票数 0

我正在尝试将nmap输出作为一个表或至少是直列。我使用这个命令:

代码语言:javascript
运行
复制
$ sudo nmap -sn 192.168.103.0/24 \
    | awk '/Nmap scan report for/{printf $5;}/MAC Address:/{print ","substr($0, index($0,$3)) }' \
    | sort -t . -k 4,4n

然而,我想让它向我展示:

代码语言:javascript
运行
复制
ip    mac address     hostname

没有()的ip或主机名,但我无法做到这一点。

EN

回答 2

Unix & Linux用户

发布于 2020-05-10 21:53:54

如果您拥有出色的xmlstarlet,您可以解析来自nmap的XML输出,并生成几乎任何您想要的表。

代码语言:javascript
运行
复制
nmap -sn -oX - 192.168.1.0/24 |
    xmlstarlet sel -t \
            -m '/nmaprun/host[status/@state="up"]' \
            -v 'address[@addrtype="ipv4"]/@addr' -o 示例XML输出如下所示
  
  
  
    
    
    
    
      
    
    
  
  ...
  ...
  
    
    
  
示例处理输出,只显示响应nmap ping请求的四个设备192.168.1.6     01:55:1E:C3:68:A3       host6.roaima.co.uk
192.168.1.8     92:66:9B:20:F1:17
192.168.1.15    53:77:5E:EA:FD:03       client15.roaima.co.uk
192.168.1.31    C4:88:FB:6C:64:AExmlstarlet工具使用XPath来选择XML和属性,要么匹配它们(-m),要么提取值(-v)。\t' \
            -v 'address[@addrtype="mac"]/@addr' -o 示例XML输出如下所示A3示例处理输出,只显示响应D4 ping请求的四个设备A5D6工具使用XPath来选择XML和属性,要么匹配它们(D7),要么提取值(D8)。\t' \
            -v 'hostnames/hostname[1]/@name' -n示例XML输出如下所示A3示例处理输出,只显示响应D4 ping请求的四个设备A5D6工具使用XPath来选择XML和属性,要么匹配它们(D7),要么提取值(D8)。
票数 1
EN

Unix & Linux用户

发布于 2020-05-10 22:16:45

如果您真的想使用awk,这个脚本可能会有所帮助。

代码语言:javascript
运行
复制
nmap -sn 192.168.1.0/24 |
    awk '
        function out() { if (state=="up") { printf "%s\t%s\t%s\n",ip,mac,name; ip=""; mac=""; name=""; state="" } }

        /Nmap scan report/ { out(); name=$5; ip = substr($6,2,length($6)-2); if (ip=="") { ip=name; name="" } }
        /Host is/ { state=$3 }
        /MAC Address/ { mac=$3 }

        END { out() }
    '

如果你想要的话,可以把它卷成一行。

示例输出,仅显示响应nmap ping请求的四个设备

代码语言:javascript
运行
复制
192.168.1.6     01:55:1E:C3:68:A3       host6.roaima.co.uk
192.168.1.8     92:66:9B:20:F1:17
192.168.1.15    53:77:5E:EA:FD:03       client15.roaima.co.uk
192.168.1.31    C4:88:FB:6C:64:AE
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/585775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档