Для начала нам понадобятся дополнительные директивы. Открываем файл Unit1.h и в самом начале пишем следующее:
#include <winsock.h>
#include <stdio.h>
Теперь приступим к поиску IP-адреса локальной сети. На форму помещаем компонент ListBox и кнопку Button со следующим кодом:
WORD wVersionRequested;
WSADATA wsaData;
wVersionRequested = MAKEWORD(1, 0);
int err = WSAStartup(wVersionRequested, &wsaData);
if(err == 0)
{
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]);
ListBox1->Items->Add(LocalIp);
}
}
В компонент ListBox буду записаны все IP-адреса в локальной сети, подключенные к данному компьютеру.