标签:获取本机ip地址
新建win32控制台程序,代码如下:
#include <winsock2.h>
#include <stdio.h>
void GetLocalIP();
int main()
{
GetLocalIP();
return 0;
}
void GetLocalIP()
{
char chostname[256] = { 0 };
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 2, 2 );
err = WSAStartup( wVersionRequested, &wsaData );
if (err != 0)
{
return;
}
if ( gethostname( chostname , 256 ) == SOCKET_ERROR )
{
return;
}
struct hostent * phe = gethostbyname( chostname );
if ( phe == NULL )
{
return;
}
if ( phe->h_addr_list[0] == 0 )
{
return;
}
struct in_addr addr;
memcpy( &addr, phe->h_addr_list[0] , sizeof( struct in_addr ) );
DWORD dw1=inet_addr(inet_ntoa(addr));
WORD wd1=LOWORD(dw1);//取高十六位
WORD wd2=HIWORD(dw1);//取低十六位
BYTE bte1=LOBYTE(wd1);
BYTE bte2=HIBYTE(wd1);
BYTE bte3=LOBYTE(wd2);
BYTE bte4=HIBYTE(wd2);
printf("%d.%d.%d.%d",bte1,bte2,bte3,bte4);
}
正常情况可以直接编译运行,如果遇到LNK2001,无法解析的外部符号..错误,在工程属性[链接器]->[命令行]附加选项中增加Ws2_32.lib,然后重新编译。
本文出自 “adwen2010” 博客,请务必保留此出处http://adwen2010.blog.51cto.com/1820717/1584334
标签:获取本机ip地址
原文地址:http://adwen2010.blog.51cto.com/1820717/1584334