如果能的话,请告诉我详细的函数形式、参数、返回值,不胜感激!!!
WORD wVersionRequested;
WSADATA wsaData;
char name[255];
CString strIP;
PHOSTENT hostinfo;
wVersionRequested = MAKEWORD( 2, 0 );
if ( WSAStartup( wVersionRequested, &wsaData ) == 0 )
{
if( gethostname ( name, sizeof(name)) == 0)
{
if((hostinfo = gethostbyname(name)) != NULL)
{
strIP = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);
}
}
WSACleanup( );
}
}
先用gethostname,再用gethostbyname即可
给出这样一组函数, 可以枚举所有IP地址:
//建立当前IP列表
char szIP[20];
WSADATA wsaData;
WSAStartup( MAKEWORD(2,0), &wsaData );
struct hostent* host = gethostbyname(NULL);
unsigned char *lpnIp;
unsigned char **lpnList = (unsigned char**)host->h_addr_list;
while( *lpnList ){
lpnIp = *lpnList;
sprintf( szIP, "%d.%d.%d.%d",lpnIp[0],lpnIp[1],lpnIp[2],lpnIp[3] );
lpnList++;
}// endwhile
WSACleanup();
或者调用IPHELPERAPI.DLL里面的函数, 可是不知道为什么我在VC6里面找不到帮助里面的头文件, 据说VC7里面有, 还有就是调用IPCONFIG分析输出的文件, 这样可以得到IP所绑定的网卡.
如果不行就:
Project->Setting->Link->Object/Library modules 中加入Ws2_32.lib