|
![]() | 作者: jhkdiy [jhkdiy]
![]() |
登录 |
用VB实现群ping 作者:jhkdiy 日期:2004-7-21 版权:jhkdiy 转载请保留作者信息 开发平台:Win2000+VB6中文企业版 测试平台:Win2000、WinXP(我就这两个系统,98下没测试,有98的朋友可以测试一下) 好久没有出原创了,之前高考,现在放假了,玩了一阵子,今天没什么事,所以就来 介绍这个东东,其实程序很早就写出来了,我记得就在我发表《用VB实现一个完整的端口 扫描器》之后的一段时间,因为程序最重要的群ping就是直接拿扫描器的思想用的。 用VB实现ping功能的程序在网上有一大把,但都是实现对单一的一个IP或域名进行Ping 检查的,但在实际的应用中,我们通常都是对一段IP地址进行Ping检查,那么在Vb中如何 实现群ping的功能呢?如果看过扫描器的朋友就很容易明白,程序仅仅是循环执行ping命令, 然后把ping的返回结果进行处理并显示出来,虽然这样做并不高明,但我当初的目的仅仅就是 为了实现群ping,就此而已;程序还不完善,如对IP地址的检查不够严格,对超时时间的检查 等等。 ping命令对于用户来讲,最主要的就是检测目标主机是不是可连通。Ping程序实际就 是发送一个ICMP回显请求报文给目的主机,并等待回显的ICMP应答。然后打印出回显的报文。P ing不通一个地址,并不一定表示这个IP不存在或者没有连接在网络上,因为对方主机可能做 了限制,比如安装了防火墙,因此Ping不通并不表示不能使用FTP或者TELNET连接。PING得到的 结果包括字节数、反应时间、以及生存时间。Ping程序通过在ICMP报文数据中存放发送请求的 时间来计算返回时间。当应答返回时,根据现在时间减去报文中存放的发送时间就得到反应时 间了。生存时间(TTL),本来就存放在IP数据报的头部,直接就能够获取。 该程序实现对一个或多个IP进行Ping检查,并把结果显示在窗口中,而显示分详细报 告和简明两种,详细报告中的内容和我们在命令窗口中看到的信息是一样的,而简明报告就 只提取响应ping检查的机子,这个在实际应用中很不错,有很多扫描器就是先对一段IP进行P ing检查,然后排除没有响应Ping的机子,只对响应ping的机子进行端口扫描,这样就提高了 扫描的质量和速度,当然实际中并不这样简单,我们还要多学习网络知识,并对TCP/IP协议有 深入的了解编起网络程序来才会得心应手,大家一起努力吧! 在编程角度来说,我们要清楚怎样发送ICMP报文,并设置一系列的参数,发送ICMP报 文是由IcmpSendEcho()这个函数执行的: Declare Function IcmpSendEcho Lib "ICMP" (ByVal IcmpHandle As Long, _ ByVal DestAddress As Long, _ ByVal RequestData As String, _ ByVal RequestSize As Integer, _ RequestOptns As IP_OPTION_INFORMATION, _ ReplyBuffer As IP_ECHO_REPLY, _ ByVal ReplySize As Long, _ ByVal TimeOut As Long _ ) As Boolean 主要参数介绍: ' IcmpHandle从函数IcmpCreateFile返回得到 ' DestAddress是指向地址列表的第一项的指针 ' RequestData是一个没有结束符的64字节的字符串,里面包含字符的ASCII为170 ' RequestSize大小为64字节 ' ReplyBuffer 请求的缓冲区 ' ReplySize 缓冲区的大小 ' Timeout 为超时时间 程序中都有大量的注解,相信大家给点时间是可以看明白的,还值得提的是模块文件 关于Winsock API的函数在自带的API浏览器中是找不到的,如果要使用这些API就直接复制吧, 反正我就是这样做,程序完全使用API和标准控件,所以生成的执行文件应该可以顺利运行在有 MSVBVM60.dll 的机子上。 好了,有问题或意见可以通过论坛或邮件通知我,欢迎讨论。 程序图片: ![]() 源代码下载: http://free.efile.com.cn/jhkdiy/code/ping.rar [此贴被 jhkdiy(jhkdiy) 在 07月24日09时12分 编辑过] |
地主 发表时间: 04-07-24 00:57 |
![]() | 回复: jhkdiy [jhkdiy] ![]() |
登录 |
![]() |
B1层 发表时间: 04-07-24 01:00 |
![]() | 回复: SilentSlave [silent] ![]() |
登录 |
![]() |
B2层 发表时间: 04-07-24 03:31 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号