Nmap 输出 IP 和 MAC 地址在同一行

Nmap output with IP and MAC address in same line

给出 的答案,

我想知道如何从下面的输出中得到:

Nmap scan report for 192.168.1.38
Host is up (0.0092s latency).
MAC Address: B8:78:2E:XX:XX:XX (Apple)
Nmap scan report for 192.168.1.39
Host is up (0.0092s latency).
MAC Address: 40:6C:8F:XX:XX:XX (Apple)
Nmap scan report for 192.168.1.201
Host is up (0.019s latency).
MAC Address: 3C:DF:A9:XX:XX:XX (Arris Group)
Nmap done: 256 IP addresses (3 hosts up) 

scanned in 1.77 seconds

以下解析结果输出:

192.168.1.38 B8:78:2E:XX:XX:XX
192.168.1.39 40:6C:8F:XX:XX:XX
192.168.1.201 3C:DF:A9:XX:XX:XX

谢谢。

以下 awk 可能会对您有所帮助。

awk '
/Nmap scan report/{
  val=$NF;
  next
}
/MAC Address:/{
  sub(/.*Address: /,"");
  sub(/ .*/,"");
  print val,[=10=]
}
'   Input_file
$ awk '/Nmap scan/{ip=$NF;next}ip && /MAC/{print ip, }' infile
192.168.1.38 B8:78:2E:XX:XX:XX
192.168.1.39 40:6C:8F:XX:XX:XX
192.168.1.201 3C:DF:A9:XX:XX:XX

$ awk '/Nmap scan|MAC/{gsub(/\(.*/,"");printf "%s%s", $NF, ++c%2?OFS:RS}' infile
192.168.1.38 B8:78:2E:XX:XX:XX
192.168.1.39 40:6C:8F:XX:XX:XX
192.168.1.201 3C:DF:A9:XX:XX:XX

输入:

$ cat infile
Nmap scan report for 192.168.1.38
Host is up (0.0092s latency).
MAC Address: B8:78:2E:XX:XX:XX (Apple)
Nmap scan report for 192.168.1.39
Host is up (0.0092s latency).
MAC Address: 40:6C:8F:XX:XX:XX (Apple)
Nmap scan report for 192.168.1.201
Host is up (0.019s latency).
MAC Address: 3C:DF:A9:XX:XX:XX (Arris Group)
Nmap done: 256 IP addresses (3 hosts up) 

感谢this post

sudo nmap -sP 172.31.201.0/24 | awk '/Nmap scan report for/{printf ;}/MAC Address:/{print " => ";}' | sort

添加到上面的 post 以获得包含 IP、MAC 和制造商

的排序列表

须藤 nmap -sP 192.168.1.0/24 | awk '/Nmap 扫描报告/{printf $5;}/MAC 地址:/{print " => "$3,$4,$5,$6,$7,$8;}' |排序