delphi获取本地IP地址

方法一:

3322获许本地外网地址:http://www.3322.org/dyndns/getip

 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.3322.org/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.3322.org/dyndns/getip));

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

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

 

方法二:

朋友们在用Delphi编程序的时候,常常碰到需要在程序中获取自己的IP地址的情况。在以往的版本中,可以通过编写一段代码或函数实现这一功能。但有了Delphi 7,这个工作可以更简化了。利用控件只需一句代码,就可以非常方便地实现这一功能。

 

新建一Project1,在form1中添加控件statusbar1(Win32页)和控件IdIPWatch1(Indy Misc页)。接着设置好控件属性:在statusbar1的panels中添加0-TStatusPanel和1-TStatusPanel两项;IdIPWatch1的HistoryEnabled的属性设为False。

 

  编写代码:在TForm1.FormCreate(Sender: TObject)中加入以下代码:

 

statusbar1.Panels[1].Text:=IdIPWatch1.LocalIP;

 

  OK!按下F9功能键,运行程序,看一下窗口下边状态栏中是不是已经显示了本机的IP地址了?

 

  提示:若IdIPWatch1的HistoryEnabled的属性设为True,则会在程序退出时,自动生成一个文件(文件名为HistoryFileName属性设定的值),记录当前的IP地址。

 

转载于:https://www.cnblogs.com/gameking/archive/2012/11/03/2752089.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值