作者:广东南海市公安局
计算机安全监察股 喻凯
当要检测的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状态是否良好。
三) 请勿用以上
程序随意实验,以免浪费网络资源;
摘自:
计算机世界网