分享

Delphi获取内外网IP

 小小 2017-08-20
2010-10-19 09:53:05      0个评论      
收藏   我要投稿

Author:InSun

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

From:www.4safer.com

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

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

关键字:Delphi获取内外网IP

 以前用VB写过,参见:

VB获取计算机名称,内、外网IP

http://yxmhero1989.blog.163.com/blog/static/112157956200910274566652/

下载地址:http://yxmhero./5246067.html

VB获取计算机名称,内、外网IP,很简单,仅作示例。这些在编大软件时作为装饰。

Author:Minghacker

From:http://yxmhero1989.blog.163.com/

添加winsock控件,Inet控件

Private Declare Function ReleaseCapture Lib "user32" () As Long none窗体的移动
       Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long,ByVal wParam As Long, lParam As Any) As Long
       Private Const WM_SYSCOMMAND = &H112
       Private Const SC_MOVE = &HF010&
       Private Const HTCAPTION = 2
       Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
       ReleaseCapture
       ret& = SendMessage(Me.hWnd, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0)
End Sub

Private Sub Form_Load()
Text1(0).Text = Winsock1.LocalHostName 必须添加winsock控件
Text1(1).Text = Winsock1.LocalIP 必须添加winsock控件
Text1(2).Text = Inet1.OpenURL("Http://www./dyndns/getip") 必须添加Inet控件
End Sub

 

其中依靠winsock控件,Inet控件

内网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的。

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多