Как получить собственный IP

WSADATA wsaData;
WSAStartup(MAKEWORD (1,1),&wsaData);

char HostName[1024];
DWORD m_HostIP = 0;
if(!gethostname(HostName, 1024))
{
if(LPHOSTENT lphost = gethostbyname(HostName))
m_HostIP = ((LPIN_ADDR)lphost->h_addr)->s_addr;
}
Развивая ответ Олега, если тебе нужно строковое представление IP адреса например "195.124.13.1" то используй тот же код +
szIPAddr=char[17];
strcpy(szIPAddr,inet_ntoa(*((in_addr*)lpHostEnt->h_addr_list[0])));
Это работает наверняка. Или
strcpy(szIPAddr,inet_ntoa(*((in_addr*)lphost->h_addr_list)));
Если нужны числа, в смысле по байтам: a1=195,a2=124,a3=13,a4=1 то в последнюю строку, предложенную Олегом поменяй на
a1=((LPIN_ADDR)lphost->h_addr)->s_b1
a2=((LPIN_ADDR)lphost->h_addr)->s_b2
a3=((LPIN_ADDR)lphost->h_addr)->s_b3
a4=((LPIN_ADDR)lphost->h_addr)->s_b4
или
a1=lphost->h_addr_list[0]
a2=lphost->h_addr_list[1]
a3=lphost->h_addr_list[2]
a4=lphost->h_addr_list[3]
 
« Предыдущая статья   Следующая статья »