首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Grep nmap输出

Grep nmap输出
EN

Stack Overflow用户
提问于 2016-03-27 20:20:03
回答 2查看 2.4K关注 0票数 0

我已经将nmap结果输出到一个名为test.txt的文件中,它如下所示:

代码语言:javascript
复制
Nmap scan report for 192.168.1.5
Host is up (0.13s latency).
PORT    STATE  SERVICE VERSION
23/tcp   open  telnet  Linux telnetd
--
Nmap scan report for 192.168.1.7
Host is up (0.13s latency).
PORT    STATE SERVICE    VERSION
80/tcp  open  http       Popper
--
Nmap scan report for 192.168.1.20
Host is up (0.13s latency).
PORT    STATE SERVICE VERSION
110/tcp open  pop3    Dove

我希望使用grep和管道输出来自我终端中文件的结果,该文件以格式: IP地址显示结果,后面是打开的端口,如下所示:

代码语言:javascript
复制
192.168.10.2
80
223
53
192.168.10.7
80
223
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-27 20:35:48

我会做以下几件事:

  1. 获取一个正则表达式,以匹配nmap输出的ip和端口。您可以利用两者的位置,即端口位于行的开头(^)并以“/”字符结尾,而ip是行上的最后一项($)。
  2. 使用grep -o查找任何正则表达式(查看regex (|)上的OR操作符)。这将使输出减少到仅匹配。
票数 0
EN

Stack Overflow用户

发布于 2016-03-28 10:04:08

你可能想:

代码语言:javascript
复制
cat test.txt | sed 's/Nmap scan report for //' | sed '/Host is/d' | sed '/Not shown/d' | sed '/All/d' | sed '/PORT /d' | cut -f1 -d"/" | sed '/^$/d' | sed '/--/d'

对于nmap -F 192.168.0.1/24 > test.txt

代码语言:javascript
复制
cat test.txt | tail -n+3 | sed '/Nmap done/d' | awk 'NR>1{print l}{l=$0}' | sed 's/Nmap scan report for //' | sed '/Host is/d' | sed '/Not shown/d' | sed '/All/d' | sed '/PORT /d' | cut -f1 -d"/" | sed '/^$/d'

的笑话,,这没有道理.将nmap与XML输出-oX结合使用。

读:https://nmap.org/book/output-formats-xml-output.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36252194

复制
相关文章

相似问题

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