Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как получить IP зная имя компьютера? [D5, Win95/98]


fixxxer ©   (2002-02-20 12:36:00) 

Подскажите пожалуйсто, как можно получить IP компьютера, зная его имя. Или, хотябы, наоборот зная имя получить IP.


Dimka Maslov   (2002-02-28 16:20:00) [1]

Networks.pas можно закачать у меня на сайте (это моё произведение) http://dims.gpsm.ru/files/downloads/findcomp.zipна данный момент он может получать список компьтеров в сети, их IP-адреса и расшаренные ресурсы. Если что обращайтесь непосредственно ко мне.

>fixxxer
Функция, приведённая тобой лишь создаёт линейный список имён компьютеров (определённых у них в свойствах сетевого окружения) на основе имеющегося древовидного (по рабочим группам), хотя это и не имена хостов, но функция gethostbyaddr для них вернёт их локальные IP-адреса, однако если на DNS сервере прописано имя хоста совпадающее с именем какого-либо компьтера, то функция естественным образом вернёи имя хоста. Такое происходит на моём компьютере. В локальной сети он имет имя DIM и адрес 192.168..., однако на DNS сервере провайдера прописан хост dim.wplus.net (для внутренних нужд провайдера) и функция gethostbyname для имени DIM возращает его адрес 195.131...


fishka   (2002-02-28 15:20:00) [2]

Если нетрудно, то вышлите, пожалуйста, и мне. Заранее спасибо.
flatfish@mailru.com


cypher   (2002-02-20 22:22:00) [3]

Вышли и мне ! cypher@land.ru


fixxxer   (2002-02-20 17:21:00) [4]

TNetworckNeighborhood декларирован в файле Networcks.pas, который я где-то скачал. Там много чего полезного. К стати я только что там получил IP-адреса. Если хочешь вышлю его тебе на мыло.


Digitman   (2002-02-20 16:30:00) [5]

судя по Neighborhood - имена компьютеров.
а что это за класс TNetworkNeighborhood ? где в Д5 VCL он декларирован ?


fixxxer   (2002-02-20 15:02:00) [6]

Список компов я получаю таким образом:

procedure TNetworkNeighborhood.ListComputers(Strings: TStrings);
var
i, j: integer;
L: TNetworkWorkgroup;
S: TString;
begin
Strings.BeginUpdate;
try
Strings.Clear;
for i:=0 to Count - 1 do begin
L:=Objects[i] as TNetworkWorkgroup;
for j:=0 to L.Count - 1 do begin
S:=L[j];
CleanUp(S);
Strings.Add(S);
end;
end;
finally
Strings.EndUpdate;
end;
end;

Это хосты или имена компов?


Digitman   (2002-02-20 14:27:00) [7]

LanManager, к которому ты, скорее всего, обращаешься для получения списка компьютеров, возвращает список имен компьютеров (так, как они определены в закладках "Идентификация" в сетевых настройках "Клиента Microsoft Network" каждого из перечисленных компьютеров), а не список хостов.


fixxxer   (2002-02-20 14:18:00) [8]

Если получаешь список компьютеров в сети, то это список хостов или имён компьютеров? (что-то я совсем не соображу)
И если это хосты то IP из них каким образом выяснить?


Ghost.   (2002-02-20 13:16:00) [9]

ну по IP попробуй так

uses winsock;

type
TAPInAddr = Array[0..100] of PInAddr;
PAPInAddr = ^TAPInAddr;

function IPaddrByHost(wnd : THandle; host : string; var addresses : string) : integer;
var
WSAData: TWSAData;
HostEntPtr: PHostEnt;
pptr: PAPInAddr;
i: Integer;
s, s1 : string;
begin
WSAStartUp( $101, WSAData );//init winsock
try
if Host = "" then
MessageBox(wnd, "Host not entered", "Error!", mb_ok or mb_iconerror);

// Get host entry by hostname
HostEntPtr := GetHostByName(@Host[1]);
if HostEntPtr = NIL then begin
addresses := "No_hosts";
exit;
end;
// Make list of host IPs
pptr := PAPInAddr( HostEntPtr^.h_addr_list );

i := 0;
while pptr^[i] <> NIL do begin
//AddressListBox.Items.Add( inet_ntoa( pptr^[i]^ ) );
s1 :=inet_ntoa( pptr^[i]^) + #13#10;
s := s + s1;
Inc( i );
end;
//MessageBox(0,@ss[1],"dfa",mb_ok);
addresses := s;

finally
end;

WSACleanUp(); // uninitialise WinSock
end;


McSimm   (2002-02-20 12:42:00) [10]

gethostbyaddr
gethostbyname


Digitman   (2002-02-20 12:41:00) [11]

Имя компьютера никак не связано с неким IP-адресом.
С IP-адресом связано имя хоста (см. все что связано с DNS). Имя же хоста и имя компьтера - понятия совершенно разные.


fixxxer   (2002-02-20 12:39:00) [12]

Совсем запутался. Наоборот - имею в виду зная IP получить имя.


Наверх

Титульная страница Поиск, карта сайта Написать письмо