分享

Delphi获取内外网IP

 quasiceo 2013-02-01
Delphi获取内外网IP

Author:InSun

Blog:http://yxmhero1989.blog.163.com/     http://hi.baidu.com/4safer

From:www.4safer.com

最近用Delphi写个综合性的软件,对于进程方面的也在研究,将会有文章出示。

在编写系统方面,要Delphi实现内外网IP的获取。

关键字:Delphi获取内外网IP


内网IP获取:在Delphi6以上的版本中,有一个IdIPWatch控件,它的功能就是检测网络在线状态和获取

IP地址。此控件在Indy Misc页面。用IDIPwatch1.LocalIP。当然也可以用Winsock,我们择便捷用。

可以这样写、procedure TForm1.IP1Click(Sender: TObject);
       showmessage(IDIPwatch1.LocalIP)

end;
但是showmessage没额外参数,不能改标题,我们换做messagebox也很简单:

procedure TForm1.IP1Click(Sender: TObject);
var
 Wnd:HWND;
begin
  Wnd:=application.Handle;
  messagebox(Wnd,PChar(IDIPwatch1.LocalIP),PChar(InSun),MB_OK);
end;

外网Ip获取:

Delphi中用TIdHTTP控件 ,在Indy Clients页面。

  示例:
       Memo1.Lines.Text   :=   IdHTTP.Get(URL);  

showmessage(IdHTTP1.Get(http://www./dyndns/getip));

所以我们的代码是:
procedure TForm1.IP2Click(Sender: TObject);

var
 Wnd:HWND;
begin
  Wnd:=application.Handle;
  messagebox(Wnd,PChar(IdHTTP1.Get(http://www./dyndns/getip)),PChar(InSun),MB_OK);
end;

其实我们用的就是第三方网页获取公网Ip的。

Delphi - InSun - InSuns PaRaDise

我们聪明的用了最简单的网页,而下面的网页是查询式的,势必用到字符串操作,有些复杂,大家可以研究下。

http://hi.baidu.com/blackcode/blog/item/ab9beacd400897520fb34581.html

“刚才baidu了下,关于这个的,问的人倒是挺多,方法好像不是太多,1,找一个外网的机子配合,

得到本机的公网ip,2,通过三方网页获取,我就是用的2,其实很简单,get html代码,通过几个

字符串操作函数分析,得到所需信息。废话说完了,直接看代码。”
function pro_result(str:string):string ;//封装了成一个匹配的处理函数
var
i_0,i_1:Integer;
flag:Boolean;
str_1,temp_result:string;
begin
temp_result:=;
while Pos(查询结果,str)<>0 do
begin
i_1:=Pos(</span>,str);
i_0:=Pos(查询结果,str);
temp_result:=temp_result+Copy(str,i_0,i_1-i_0)+#13#10;
Delete(str,1,Pos(</span>,str));
end;
ReplaceString(temp_result, ,,flag);
Result:=temp_result;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
temp,str_1:string;
i:Integer;
begin
Memo1.Text:=IdHTTP1.Get(http://www.);
temp:=Memo1.Text;
i:=Pos(查询结果,temp);
str_1:=Copy(temp,i,254);
str_2:=pro_result(str_1);
Memo2.Text:=str_2;
end;

当然ReplaceString函数要有定义。

我们把它们写在一起,我就不用皮肤了,也不写标题了,大家自己发挥。

如图:

Delphi - InSun - InSuns PaRaDise

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多