Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.13;
Скачать: CL | DM;

Вниз

Как получить IP зная имя компьютера?   Найти похожие ветки 

 
fixxxer ©   (2002-02-20 12:36) [0]

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


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

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


 
Digitman ©   (2002-02-20 12:41) [2]

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


 
McSimm ©   (2002-02-20 12:42) [3]

gethostbyaddr
gethostbyname


 
Ghost. ©   (2002-02-20 13:16) [4]

ну по 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;


 
fixxxer ©   (2002-02-20 14:18) [5]

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


 
Digitman ©   (2002-02-20 14:27) [6]

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


 
fixxxer ©   (2002-02-20 15:02) [7]

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

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 16:30) [8]

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


 
fixxxer ©   (2002-02-20 17:21) [9]

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


 
cypher ©   (2002-02-20 22:22) [10]

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


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

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


 
Dimka Maslov ©   (2002-02-28 16:20) [12]

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...



Страницы: 1 вся ветка

Текущий архив: 2002.05.13;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.007 c
7-39876
Brand
2001-11-08 01:02
2002.05.13
IP сетевой платы


14-39836
MBo
2002-04-03 12:02
2002.05.13
Конкурс для начинающих


1-39731
kat
2002-04-27 10:11
2002.05.13
Двоично-десятичные числа


3-39666
Gamar
2002-04-17 17:06
2002.05.13
Звполнение дат без точек


7-39865
pus
2002-02-04 04:01
2002.05.13
CD rom