#include <winsock.h>
#include <stdio.h> // для sprintf
-----
void GetLocalIp()
{
// сперва инициализируем сокет и проверяе м его на версию
WORD wVersionRequested;
WSADATA wsaData;
wVersionRequested = MAKEWORD(1, 0);
int err = WSAStartup( wVersionRequested, &wsaData );
if (err != 0){
ShowMessage("Версия сокета маловата будет!");
return;
}
// теперича получаем структуру хоста и выцепляем из нее номер IP
char hn[1024];
struct hostent *adr;
if(gethostname((char *)&hn, 1024)){
int err = WSAGetLastError();
Beep();
};
adr = gethostbyname(hn);
if(adr){
char *LocalIp = new char[15];
sprintf(LocalIp,"%d.%d.%d.%d",
(unsigned char)adr->h_addr_list[0][0],
(unsigned char)adr->h_addr_list[0][1],
(unsigned char)adr->h_addr_list[0][2],
(unsigned char)adr->h_addr_list[0][3]);
ShowMessage(LocalIp);
}else{
ShowMessage(";-0");
}
}