/*====================================================================
函数名 GetLocalIP
功能 : 获取本地IP,linux 获取eth0IP
算法实现 :
参数说明 : void
返回值说明: s8*
----------------------------------------------------------------------
修改记录 :
日 期 版本 修改人 走读人 修改记录
====================================================================*/
s8* GetLocalIP(void)
{
#ifndef _LINUX_
WSADATA wsaData;
s8 chName[DEFAULT_IP_LENGTH];
s8 *pchIP;
PHOSTENT hostinfo;
if (WSAStartup(MAKEWORD(2,0), &wsaData ) == 0 )
{
if (gethostname (chName, sizeof(chName)) == 0)
{
if((hostinfo = gethostbyname(chName)) != NULL)
{
pchIP = inet_ntoa(*(struct in_addr *)*hostinfo->h_addr_list);
}
}
WSACleanup();
}
return pchIP;
#else
s8 chName[DEFAULT_IP_LENGTH];
s8 *pchIP;
int sock_fd;
struct ifreq ifr;
if ((sock_fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
{
return NULL;
}
strncpy(ifr.ifr_name, "eth0", IF_NAMESIZE);
ifr.ifr_name[IF_NAMESIZE - 1] = '\0';
if (ioctl(sock_fd, SIOCGIFADDR, &ifr) < 0)
{
return NULL;
}
pchIP = inet_ntoa(((struct sockaddr_in*)(&ifr.ifr_addr))->sin_addr);
return pchIP;
#endif/*_LINUX_*/
}