Chinaunix首页 | 论坛 | 博客
  • 博客访问: 337403
  • 博文数量: 71
  • 博客积分: 2129
  • 博客等级: 大尉
  • 技术积分: 835
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-18 16:03
文章分类

全部博文(71)

文章存档

2014年(22)

2013年(18)

2012年(24)

2010年(7)

我的朋友

分类: C#/.net

2014-05-04 14:18:51

帮朋友写一个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]; //定义二维数组深度

阅读(1484) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~