中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Delphi > 综合文章
用Delphi实现图形化批量IP检测
作者:未知 时间:2005-08-07 20:59 出处:编程爱好者网站 责编:chinaitpower
              摘要:用Delphi实现图形化批量IP检测
作者:广东南海市公安局计算机安全监察股 喻凯

当要检测的IP比较少时,我们一般直接使用DOS命令Ping来实现。但是,如果我们要检测的IP比较多时(比如一个网段),再用Ping命令就比较繁琐了,即使写一个批处理来实现,大把数据看起来也让人恼火。这里,我们用Delphi实现对批量IP的检测,检测结果用明了的图形显示.

一:程序实现
在这个程序中,我们用TreeView来表示检测的IP结果;用ICS控件组的Ping控件来实现对IP的检测。
一)Ping功能的实现
为了实现Ping功能,我们在ICS的Ping控件基础上写一个函数,函数结果表示IP是否可以Ping通,如果可以,结果为True,反之,为False。函数如下:

//函数Ping
//使用了ICS的Ping控件
Function TMainForm.Ping(strip:string):Boolean;
Begin
//IP地址
ping1.address:=Trim(strip);
Ping1.ping;
//结果
if ping1.ErrorCode=0 then
begin
ping:=True;
end
Else
Begin
ping:=False;
//如果不能Ping通,i加一;
i:=i+1;
End;
End;

函数说明:
参数strip:要检测的ip;
变量i:如果不能Ping通,i加一(注意:I定义为一个全局变量);

二)控件说明
程序中使用控件的属性功能如下:


三)程序代码
主要代码部分如下:
var
MainForm: TMainForm;
//i记录不能Ping通的总数;
i:Integer;

implementation

{$R *.DFM}

Function TMainForm.Ping(strip:string):Boolean;
Begin
ping1.address:=Trim(strip);
Ping1.ping;
if ping1.ErrorCode=0 then
begin
ping:=True;
end
Else
Begin
ping:=False;
i:=i+1;
End;
End;

procedure TMainForm.Button1Click(Sender: TObject);
Var
h:Integer;
treenode1,treenode2:TTreeNode;
begin
//清空所有Item;
TreeView1.Items.Clear;

With TreeView1.Items Do
Begin
//增加根接点;
TreeNode1:=Add(nil, '批量IP检测');
//全部展开所有结点
TreeView1.FullExpand;
//刷新TreeView
TreeView1.Refresh;
//根结点图标
TreeNode1.ImageIndex:=0;
TreeNode1.SelectedIndex:=0;
//二级接点
For h:=StrToInt(Trim(Edit2.Text)) To StrToInt(Trim(Edit3.Text)) Do
Begin
if ping(Trim(Edit1.Text)+'.'+Trim(IntToStr(h)))=True Then
Begin
//如果可以Ping通,图标为0;
TreeNode2:=AddChild(TreeNode1,Trim(Edit1.Text)+'.'+IntToStr(h));
TreeNode2.ImageIndex:=0;
TreeNode2.SelectedIndex:=0;
//全部展开所有结点
TreeView1.FullExpand;
//刷新TreeView
TreeView1.Refresh;
End
Else
Begin
//如果不能Ping通,图标为1
TreeNode2:=AddChild(TreeNode1,Trim(Edit1.Text)+'.'+IntToStr(h));
TreeNode2.ImageIndex:=1;
TreeNode2.SelectedIndex:=1;
//全部展开所有结点
TreeView1.FullExpand;
//刷新TreeView
TreeView1.Refresh;
End;
End;
h:=h+1;
End;
Label4.Caption:='检测结果:'+IntToStr(i)+' 个IP不能Ping通';
Application.MessageBox('检测结束','提示',0);
End;

二:程序说明
一) 以上程序可以实现对一个网段的检测,具体到应用,可以将要检测的IP放入数据库,同时用文字说明IP对应的机构或者计算机。检测时,直接读取数据库记录,将检测结果和数据库中的IP说明相结合,使结果直接具体到计算机名;
二) ICS控间组的Ping控件功能很强,这里只是使用了它的最基本的一个功能,具体应用中,建议更多使用Ping控件的其他属性和功能,比如检测响应时间(ReplyTime)来检测IP状态是否良好。
三) 请勿用以上程序随意实验,以免浪费网络资源;


摘自:计算机世界网

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有