帮朋友写一个nmap端口扫描然后与上次扫描进行对比的工具,与crontab结合定期扫描,保存对比数据。
google搜索了一下相关的模块,在freebuf上看到有人分享过一个libnmap模块,看了一下他的官方文档,介绍的不多,但是很贴心的有demo代码,测试了一下,只要简单改改就可以完成一个我们想要的工具。
工具说明:
0)环境:Linux+python+nmap(kali)
1)默认targets.txt里面是扫描目标,或使用-t参数自定义扫描文件。
2)db.db是扫描结果文件,采用sqlite(不需要安装环境),存放扫描主机、解析后的扫描结果、原始xml、与上次扫描结果对比的差异数据、最后更新时间。
3)log.log是程序日志,如果出错可以查看日志。
4)libnmap不需要安装,我将他的代码拷贝出来放到跟主程序同一目录即可。
扫描时会有进度比例,扫描完成后会与上一次的螺杆泵厂家结果数据进行对比,[+]表示新增数据,[-]表示减少数据,[~]表示更改数据,最后会展示本次扫描结果解析后的数据。
结果会保存到sqlite中,保存的内容其实就是上面展示的内容。
写的时间非常短,当作学习和实践libnmap模块了,有需要的朋友可以拿去根据自己的需要改改
1)一维数组
int[] numbers = new int[5] {1, 2, 3, 4, 5};
string[] names = new string[3] {"Matt", "Joanne", "Robert"};
2)多维数组
int[,] numbers = new int[,] { {1, 2}, {3, 4}, {5, 6} };
string[,] siblings = new string[,] { {"Mike","Amy"}, {"Mary","Albert"} };
3)创建数组,添加数据
ArrayList myAL = new ArrayList();
myAL.Add("abc");
4)数组遍历
for(int i = 0;i < myAL.Count; i++)
{
// myAL[i];
}
5)字符串数组
string[] strarray = new string[7];
6)对象数组
struct Data
{
public int ID;
public string Name;
}
ArrayList arr = new ArrayList();
for(int i = 0; i < 100; i++)
{
Data d = new Data();
d.ID = i;
arr.Add(d);
}
7)整型数组
int []a1 = new int [10]; //定义一维数组深度
int [,]a2 = new int [10,20]; //定义二维数组深度
阅读(1534) | 评论(0) | 转发(0) |