首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nmap bash动态创建文件

问Nmap bash动态创建文件
EN

Stack Overflow用户
提问于 2017-07-02 12:41:25
回答 2查看 295关注 0票数 0

我正在做一个脚本,它使用nmap来获取ip地址范围上的所有设备以及它们的mac地址。我想为每个设备创建一个文件,比如IPaddress_macaddress。我这样做是为了获得值,但我不知道如何动态创建文件。

代码语言:javascript
复制
sudo nmap -n -sP 192.168.1.* | 
awk '/Nmap scan report/{printf $5;printf " ";getline;getline;printf $3;}' > file.txt

这在file.txt上打印:

代码语言:javascript
复制
192.168.1.10 DC:EX:03:0S:4B:31
192.168.1.11 A4:2G:8C:E8:5A:65
192.168.1.32 9C:80:GF:J0:53:6F
192.168.1.23 64:7C:54:CC:SD:C4
192.168.1.77 256

此文件的格式为

代码语言:javascript
复制
ipaddress macaddress

我希望解析该文件,为每一行创建一个新文件,其中包含每一行内容的名称,在ipaddress和macaddress之间添加一个下划线。与ipaddress_macaddress.txt相对应

因此,对于那个file.txt,使用一个脚本,我希望它创建192.168.1.10_DC:EX:03:0S:4B:31.txt等

我不知道怎么才能聪明地解析它

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-02 21:17:00

代码语言:javascript
复制
$ ls
file

$ while read ip mac; do touch ${ip}_${mac}.txt; done < file

$ ls
192.168.1.10_DC:EX:03:0S:4B:31.txt  192.168.1.23_64:7C:54:CC:SD:C4.txt 192.168.1.77_256.txt
192.168.1.11_A4:2G:8C:E8:5A:65.txt  192.168.1.32_9C:80:GF:J0:53:6F.txt  file
票数 1
EN

Stack Overflow用户

发布于 2017-07-03 10:43:52

作为一架awk飞机,你可以:

代码语言:javascript
复制
nmap -n -sP 192.168.1.* | awk '{ if ($0 ~ /Nmap scan/) { ip=$5 } if ($0 ~ /MAC/) { mac=$3;det[mac]=ip } } END { for ( i in det ) { system("echo \""i" "det[i]"\" > "i"_"det[i]".txt") } }'

这将从nmap获取输出,然后搜索"Nmap扫描“,并将ip地址放置在可变ip中,然后" mac”将mac地址放置在mac中。然后用ip地址和MAC地址创建数组。然后将其循环通过,并使用awk系统功能创建具有ip和MAC地址的文件。

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

https://stackoverflow.com/questions/44870929

复制
相关文章

相似问题

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