Как получить собственный 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] |