怎样用delphi制作一个IPhunter

翻译|其它|编辑:郝浩|2005-07-18 11:11:00.000|阅读 1420 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>


   有人说现在的程序员成了组装工人,其实很有道理,利用控件模块+少量代码就可以实现,delphi 5.0提供了丰富的internet控件,利用tcp/ip 客户端-服务端就可以解决问题。关键的控件是serversocket,我们模仿iphunter的界面用一个button1(按钮),一个combobox1(用于显示),这三个最基本的控件放置到空白窗体上就可以开始写代码了。

   首先,这个combobox1必须能显示多个ip,我们定一个变量y来累加combobox1.items[y], var y:integer;
我们的思路如下,当serversocket活动的port(端口)收到基于tcp/ip协议的连结请求时候,返回对方的ip值,传递给combobox显示出来。由button1控制serversocket的激活,也就是打开关闭端口。 

我们在serversocket的on clientconnect事件中加入一下代码:
 
procedure tform1.serversocket11clientconnect(sender: tobject; socket: tcustomwinsocket);
begin
   combobox1.items.insert(y,'');//加入一条空纪录
   combobox1.items[y]:=socket.remoteaddress;//获取对方的ip
   label1.text:='共捕获'+inttostr(y+1)+'个ip';//用一个标签来显示一共抓了多少ip
   y:=y+1;//计数变量加1
   socket.close;
end;

现在,将button1的caption属性设置为 '开始',在它的单击事件中加入以下代码
procedure tform1.speedbutton7click(sender: tobject);
begin
  if speedbutton7.caption='开始' then
     begin
        serversocket11.port:=80;//这句可以在serversocket属性中设定,捕获浏览器的连接
        serversocket11.active:=true;//激活端口
        speedbutton7.caption:='停止';
     end
   else
begin
    serversocket11.active:=false;//关闭端口
    speedbutton7.caption:='开始';
    combobox1.clear;//结束捕获,清空历史信息
    y:=0;//计数变量复位
end;
end;
 


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP