Автор
|
Тема: Помогите ламеру!
|
AcTpoyM |
опубликован 13-03-2001 08:32 MSK
Привет всем кто оьважился мне помочь! Моя проблема заключается в неопытности: не могли бы Вы рассказать, как получить (т.е. какой функцией) собственный IP, а затем вывести его через SetDlgItemText. Примечание: без MFC, нужна совместимость с Visual C++. Елси не лень - вставьте кусочек кода :)) буду очень благодарен!
|
OlegN
|
опубликован 14-03-2001 11:10 MSK
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; }
|
Demo_S
|
опубликован 15-03-2001 03:41 MSK
Развивая ответ Олега, если тебе нужно строковое представление 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*)lpHostEnt->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=lpHostEnt->h_addr_list[0] a2=lpHostEnt->h_addr_list[1] a3=lpHostEnt->h_addr_list[2] a4=lpHostEnt->h_addr_list[3]
|
Demo_S
|
опубликован 15-03-2001 03:45 MSK
блин,не заметил, или в моем коде вместо lpHostEnt везде пиши lphost или у Олега в коде вместо lphost пиши lpHostEnt |
AcTpoyM
|
опубликован 21-03-2001 08:35 MSK
Ну что же! Спасибо вам всем большое! |