首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

获取主机名和IP地址出错?解决方法

2012-01-23 
获取主机名和IP地址出错??#includewinsock2.h#includestdio.h#includestdlib.hintGetLocalHostName(

获取主机名和IP地址出错??
#include   <winsock2.h>
#include   <stdio.h>
#include   <stdlib.h>

int   GetLocalHostName(char   *sHostName);
int   GetIPAddress(const   char   *sHostName,   char   *sIPAddress);

//
//   Function:   main
//
int   main()
{
WSADATAwsd;
intnRetCode;
charm_sHostName[256],
m_sIPAddress[256];

if(WSAStartup(MAKEWORD(2,2),   &wsd)   !=   0)
{
printf( "Failed   to   load   Winsock   library!\n ");
return   1;
}

nRetCode   =   GetLocalHostName(m_sHostName);
nRetCode   =   GetIPAddress(m_sHostName,   m_sIPAddress);

printf( "%s\n%s ",   m_sHostName,   m_sIPAddress);


WSACleanup();
return   0;
}

int   GetLocalHostName(char   *sHostName)
{
charszHostName[256];
intnRetCode;

nRetCode   =   gethostname(szHostName,sizeof(szHostName));
if(nRetCode   !=   0)
{
//错误产生
sHostName   =   "Not   avaiable ";
return   WSAGetLastError();
}
strcpy(sHostName,   szHostName);
return   0;
}

int   GetIPAddress(const   char   *sHostName,   char   *sIPAddress)
{
struct   hostent   FAR   *lpHostEnt   =   gethostbyname(sHostName);
if(lpHostEnt   ==   NULL)
{
//错误产生
sIPAddress   =   " ";
return   WSAGetLastError();
}

LPSTR   lpAddr   =   lpHostEnt-> h_addr_list[0];
if(lpAddr)
{
struct   in_addr   inAddr;
memmove(&inAddr,lpAddr,4);
//转化成标准IP地址形式
sIPAddress   =   inet_ntoa(inAddr);
if(sIPAddress   ==   " ")
sIPAddress   =   "Not   available ";
}
return   0;
}


-----------Configuration:   获取主机名和计算机IP地址   -   Win32   Debug-----------
Linking...
获取主机名和计算机IP地址.OBJ   :   error   LNK2001:   unresolved   external   symbol   __imp__WSACleanup@0
获取主机名和计算机IP地址.OBJ   :   error   LNK2001:   unresolved   external   symbol   __imp__WSAStartup@8
获取主机名和计算机IP地址.OBJ   :   error   LNK2001:   unresolved   external   symbol   __imp__WSAGetLastError@0
获取主机名和计算机IP地址.OBJ   :   error   LNK2001:   unresolved   external   symbol   __imp__gethostname@8
获取主机名和计算机IP地址.OBJ   :   error   LNK2001:   unresolved   external   symbol   __imp__inet_ntoa@4
获取主机名和计算机IP地址.OBJ   :   error   LNK2001:   unresolved   external   symbol   __imp__gethostbyname@4
LIBCD.lib(wincrt0.obj)   :   error   LNK2001:   unresolved   external   symbol   _WinMain@16
Debug/获取主机名和计算机IP地址.exe   :   fatal   error   LNK1120:   7   unresolved   externals
Error   executing   link.exe.

获取主机名和计算机IP地址.exe   -   8   error(s),   0   warning(s)

[解决办法]
在你的工程里添加ws2_32.lib库
[解决办法]
UP

热点排行