CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

如何获取当前计算机的IP地址和主机名?

楼主znull(随疯而来)2002-05-08 10:59:15 在 VC/MFC / 基础类 提问

如题,给点源码,谢谢! 问题点数:20、回复次数:9Top

1 楼yu_hl(卖柴火的小男孩)回复于 2002-05-08 11:01:39 得分 5

char   name   [255];  
  int   res   =   gethostname(name,   255);  
  struct   hostent   *   pHost   =   gethostbyname(name);  
  for(   int   i   =   0;   pHost!=   NULL   &&   pHost->h_addr_list[i]!=   NULL;   i++   )    
  {    
  CString   str;    
  int   j;    
  for(   j   =   0;   j   <   pHost->h_length;   j++   )    
  {    
  CString   addr;    
  if(   j   >   0   )    
  str   +=   ".";    
  addr.Format("%u",   (unsigned   int)((unsigned   char*)pHost->h_addr_list[i])[j]);    
  str   +=   addr;    
  }  
  AfxMessageBox(str);  
  }  
  Top

2 楼chaojibenben(笨笨)回复于 2002-05-08 11:06:37 得分 4

DWORD   dwsize   =   255;    
  char   username[255];    
   
  if   (::GetComputerName(&username[0],   &dwsize))  
  {  
  hostent   *pHost;  
  pHost=::gethostbyname(username);  
  LPCSTR   psz;  
  psz=inet_ntoa   (*(struct   in_addr   *)pHost->h_addr_list[0]);  
  AfxMessageBox("计算机名称:\n"+(CString)(username))  
  AfxMessageBox("IP地址:"+(CString)(psz));  
  }Top

3 楼chaojibenben(笨笨)回复于 2002-05-08 11:12:13 得分 0

DWORD   dwsize   =   255;    
  char   username[255];    
  if   (::GetComputerName(&username[0],   &dwsize))  
  {  
  hostent   *pHost;  
  pHost=::gethostbyname(username);  
  LPCSTR   psz;  
  psz=inet_ntoa   (*(struct   in_addr   *)pHost->h_addr_list[0]);  
  m_strinfor="计算机名称:\n"+(CString)(username)+"\r\n";  
  m_strinfor+="IP地址:";  
  m_strinfor+=psz;  
  UpdateData(FALSE);  
  }Top

4 楼cdutgch(欢喜游龙)回复于 2002-05-08 11:20:17 得分 5

绝对可行:  
  CString   CGetdata::GetlocalIPAddress()      
  {  
  WORD   wVersionRequested;  
  WSADATA     wsaData;  
  CString   Address;  
  char     szHostname[128];  
  wVersionRequested=MAKEWORD(2,0);  
   
  if(WSAStartup(wVersionRequested,&wsaData)==0)  
  {  
  if(gethostname(szHostname,128)==0)  
  {  
  struct   hostent   *pHost;  
  int   i;  
  pHost=gethostbyname(szHostname);  
  for(i=0;pHost!=NULL   &&   pHost->h_addr_list[i]!=NULL;i++)  
  {  
  int   j;  
  for(j=0;j<pHost->h_length;j++)  
  {  
  CString   addr;  
  if(j>0)  
  Address+=".";  
  addr.Format("%u",(unsigned   int)((unsigned   char   *)pHost->h_addr_list[i])[j]);  
  Address+=addr;  
  }  
  }  
  }  
  WSACleanup();  
  }  
  return   Address;  
  }Top

5 楼mylonestartear(孤心)回复于 2002-05-08 12:08:28 得分 1

我试了一些,总报错:error   LNK2001:   unresolved   external   symbol   _gethostbyname@4  
  whyTop

6 楼lvxn_sina(XN)回复于 2002-05-08 12:20:53 得分 1

哈哈~~~~~~~~~~  
   
  这是你没把.lib加入连接啊!  
  #pragma   comment(lib,   "wininet.lib")Top

7 楼dyw(旺仔)回复于 2002-05-08 12:32:21 得分 1

Ws2_32.libTop

8 楼winhero()回复于 2002-05-08 12:37:34 得分 1

应加入ws2_32.libTop

9 楼pp_ipr(ikn)回复于 2002-05-08 12:59:05 得分 1

我有一份别人的源码,要不?Top

10 楼frog_huang()回复于 2002-05-08 12:59:51 得分 1

在project   Settings   中   Link项里增加ws2_32.libTop

相关问题

  • 获取局域网上其他计算机的名称及IP?这段代码中获取主机IP为什么不管用啊。
  • 关于获取远程主机计算机名的问题
  • 无法获取主机IP
  • 如何获取网络上计算机的名称和IP?
  • 怎样通过IP地址,获取计算机的名称?
  • 获取计算机名和IP出错,大虾帮忙
  • 静态页面(htm)如果获取ip和计算机名?
  • 请教如何获取计算机名和IP地址。。急
  • 如何获取计算机的名称,描述,IP地址和MAC地址?
  • win9x/winNT下如何获得网上邻居中存在的计算机的主机名和IP地址

关键词

  • 计算机
  • null
  • phost
  • psz
  • strinfor
  • addr
  • gethostbyname
  • szhostname
  • 地址
  • hostent

得分解答快速导航

  • 帖主:znull
  • yu_hl
  • chaojibenben
  • cdutgch
  • mylonestartear
  • lvxn_sina
  • dyw
  • winhero
  • pp_ipr
  • frog_huang

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

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