用于自动化子网上可用IP地址数量的Python脚本

时间:2017-01-31 16:49:35

标签: python networking automation

有人可以帮我创建一个可以执行这些操作的python脚本。我正在努力学习如何实现自动化。

运行nmap快速扫描并导出到文本文件:

nmap -T4 -F 10.0.0.1/24 > nmap.txt

将文字剪切为IP列表:

cat nmap.txt | grep "Nmap scan report" | awk '{print $5}' | cut -d '.' -f 4 > ip_sub.txt

创建可能的主机列表(1-255列表):

python -c 'for i in range(255): print i+1' > ip_all.txt

对文件进行排序以准备diff(之前可以这样做):

cat ip_all.txt | sort -n > ip_all_sort.txt
cat ip_sub.txt | sort -n > ip_sub_sort.txt

在列中创建diff文件:

diff -y ip_all_sort.txt ip_sub_sort.txt > ip_sub_all_diff.txt

现在,计算未使用的IP地址数量:

grep '<' -o ip_sub_all_diff.txt | wc -l

1 个答案:

答案 0 :(得分:0)

首先将nmap安装到python。

pip install python-nmap

用法如下:

import nmap

nm = nmap.PortScanner() 
nm.scan('10.0.0.1')
res = nm.all_hosts()
print res

这样您就可以跳过整个写入文本文件的部分。 res包含您可以将正则表达式用于grep部分的信息,使用for循环遍历结果。

相关问题