CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

如何得到本机的IP地址

楼主Mars(战神)2001-03-01 12:55:00 在 Delphi / VCL组件开发及应用 提问

问题点数:50、回复次数:8Top

1 楼BCB(天下三分明月夜,二分无赖是扬州)回复于 2001-03-01 13:02:00 得分 25

#include   "winsock.h"  
  void   __fastcall   TForm1::Button1Click(TObject   *Sender)  
  {  
          WSAData   wsaData;  
          WSAStartup(MAKEWORD(2,0),&wsaData);           //初始化WINSOCK调用  
   
          char   HostName[64];                                             //存放本主机名  
          gethostname(HostName,sizeof(HostName));   //得到主机名  
          Edit1->Text=HostName;  
   
          HOSTENT   *lpHostEnt=gethostbyname(HostName);   //利用主机名去取主机结构  
          for   (int   i=0;   lpHostEnt->h_addr_list[i]!=NULL;   i++)  
            {  
                  IN_ADDR   *p=(IN_ADDR   *)(lpHostEnt->h_addr_list[i]);  
                  String   IP=inet_ntoa(*p);                         //数字地址转换成带.的IP串  
                  Memo1->Lines->Add(IP);  
            }  
          WSACleanup();                                                     //释放WINSOCK调用  
  }  
   
  Top

2 楼BCB(天下三分明月夜,二分无赖是扬州)回复于 2001-03-01 13:09:00 得分 0

这是C++的,让你参考,  
  有的机子有多个IP地址,都能一一显示出;  
  Top

3 楼sun_lz(sun_xp)回复于 2001-03-01 13:21:00 得分 25

procedure   TForm1.ButtonIPClick(Sender:   TObject);  
      type  
          TaPInAddr   =   Array[0..10]   of   PInAddr;  
          PaPInAddr   =   ^TaPInAddr;  
      var  
          phe:   PHostEnt;  
          pptr:   PaPInAddr;  
          Buffer:   Array[0..63]   of   Char;  
          I:   Integer;  
          GInitData:   TWSAData;  
          IP:   String;  
  begin  
          Screen.Cursor   :=   crHourGlass;  
          try  
              WSAStartup($101,   GInitData);  
              IP:='0.0.0.0';  
              GetHostName(Buffer,   SizeOf(Buffer));  
              phe   :=   GetHostByName(buffer);  
              if   phe   =   nil   then  
              begin  
                  ShowMessage(IP);  
                  Exit;  
              end;  
              pPtr   :=   PaPInAddr(phe^.h_addr_list);  
              I   :=   0;  
              while   pPtr^[I]   <>   nil   do  
              begin  
                  IP   :=   inet_ntoa(pptr^[I]^);  
                  Inc(I);  
              end;  
              WSACleanup;  
              ShowMessage(IP);  
          finally  
              Screen.Cursor   :=   crDefault;  
          end;  
  end;Top

4 楼Kingron(单身走我路……)回复于 2001-03-01 13:24:00 得分 0

这个问题问了不下10次!为什么不搜索一下呢?Top

5 楼chenjiong(准程序员:升级中....)回复于 2001-03-01 13:39:00 得分 0

是啊,连我都知道了。Top

6 楼szkingrose(szkingrose)回复于 2001-03-02 19:43:00 得分 0

如果做网络方面的话,加一个nmrtp   ,它有一个localip属性,就是你的ipTop

7 楼szkingrose(szkingrose)回复于 2001-03-02 19:43:00 得分 0

nmftp.loaclipTop

8 楼bill_lasker()回复于 2001-03-02 20:28:00 得分 0

用socket,OK·Top

相关问题

  • 怎样得到本机的ip地址?
  • 如何得到本机IP地址?
  • 怎样得到本机的IP地址?
  • 怎么得到本机的ip地址?
  • 急问如何得到本机的IP地址和本机名
  • 请问如何得到本机IP地址?
  • 怎么得到本机的IP地址呀?
  • 怎样用vb程序得到本机ip地址?
  • 如何得到本机所有的IP地址?
  • 如何得到本机的IP地址和主机名?

关键词

  • ip
  • 主机
  • winsock
  • phe
  • papinaddr
  • pptr
  • lphostent
  • 地址
  • hostname
  • wsadata

得分解答快速导航

  • 帖主:Mars
  • BCB
  • sun_lz

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo