Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Вниз

Имя компа!!!   Найти похожие ветки 

 
ser_ega   (2004-02-27 22:42) [0]

Как узнать сетевое имя компьютера (мне известен айпи)???


 
SammIk ©   (2004-02-27 23:45) [1]

struct HOSTENT FAR * gethostbyaddr (
 const char FAR       *addr,  
 int                  len,                
 int                  type                
);


 
ser_ega   (2004-02-28 00:14) [2]

Это на каком языке??? Мне можно нормальный примерчик??


 
VMcL ©   (2004-02-28 01:37) [3]

>>ser_ega  (28.02.04 00:14) [2]

Ты видишь первый раз в жизни прототип WinAPI функции на C/C++? Если да, то сочувствую.


 
ALeX.B. ©   (2004-02-28 01:45) [4]

--------------------------------Name by IP--------------------------------------
var
h: PHostEnt;
addr: TSockAddr;
Result:string;
ipaddr: string;
begin
ipaddr := "192.168.0.35";{IP adress}
Result := "";
addr.sin_addr.s_addr := inet_addr(pchar(ipaddr));
if addr.sin_addr.s_addr <> INADDR_NONE then
begin
h := gethostbyaddr(@addr.sin_addr.s_addr, sizeof(addr), AF_INET);
if h <> nil then
Result := h^.h_name;
ShowMessage(Result);
end;
end;
---------------------------------IP by name--------------------------------------
var
h: PHostEnt;
addr: TSockAddr;
Result:string;
ipaddr: string;
hn: string;
begin
hn := "alexxx";
Result := "";
if hn <> "" then
begin
if hn[1] in ["0".."9"] then
begin
if inet_addr(pchar(hn)) <> INADDR_NONE then
Result := hn;
end
else
begin
h := gethostbyname(pchar(hn));
if h <> nil then
with h^ do
Result := format("%d.%d.%d.%d", [ord(h_addr^[0]), ord(h_addr^[1]),
ord(h_addr^[2]), ord(h_addr^[3])]);
ShowMessage(Result);
end;
end
else Result := "0.0.0.0";
end;
---------------------
Всё :)


 
ser_ega   (2004-02-28 12:30) [5]

AleX.B.  -  Спасибо!!!!


 
ser_ega   (2004-02-28 12:45) [6]

For AleX.B.    Ой начал проверять а он мне говорит что незнает типа PHostEnt!!! Что надо сделать!!


 
BBCHa ©   (2004-02-28 14:10) [7]

а ты в uses добавь Winsock.


 
ser_ega   (2004-02-28 14:26) [8]

Я указал Ip компьютера, имя которого я хочу определить,а он мне выводит пустой ShowMessage!!! Что там не так???


 
ser_ega   (2004-02-29 00:59) [9]

Так че оно не пашет???


 
Verg ©   (2004-02-29 11:05) [10]

А ты думаешь каждый компьютер с IP адресом(ми) обязан иметь имя?
Ты знаешь, эти ф-ции просто обращаются к DNS серверу и это он дает информацию. Если DNS сервер не отвечает и/или просто его нет (не сконфиурирован), то система достает специальный файл hosts и если там ничего не написано про этот IP адрес, то уж все, звиняете.... полный досвидан.
Да даже если и есть DNS сервер, то он просто может не иметь информации про данный IP, ее могли просто не внести, просто за ненадобностью.


 
Anatoly Podgoretsky ©   (2004-02-29 11:33) [11]

Он наверно про Nebios Name, но это справедливо и в этом случае.


 
ser_ega   (2004-02-29 13:13) [12]

Ну так, а как можно определить имена тех компьютеров которые есть в сети?


 
Ozone ©   (2004-03-01 18:12) [13]

uses
 WinSock;

function LocalIP: string;
type
 TaPInAddr = array[0..10] of PInAddr;
 PaPInAddr = ^TaPInAddr;
var
 phe: PHostEnt;
 pptr: PaPInAddr;
 Buffer: array[0..63] of Char;
 I: Integer;
 GInitData: TWSAData;
begin
 WSAStartup($101, GInitData);
 Result := "";
 GetHostName(Buffer, SizeOf(Buffer));
 phe := GetHostByName(buffer);
 if phe = nil then Exit;
 pPtr := PaPInAddr(phe^.h_addr_list);
 I := 0;
 while pPtr^[I] <> nil do
 begin
   Result := inet_ntoa(pptr^[I]^);
   Inc(I);
 end;
 WSACleanup;
end;

function IPAddrToName(IPAddr: string): string;
var
 SockAddrIn: TSockAddrIn;
 HostEnt: PHostEnt;
 WSAData: TWSAData;
begin
 WSAStartup($101, WSAData);
 SockAddrIn.sin_addr.s_addr := inet_addr(PChar(IPAddr));
 HostEnt := gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET);
 if HostEnt <> nil then
   Result := StrPas(Hostent^.h_name)
 else
   Result := "";
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 ShowMessage(IPAddrToName(LocalIp));
end;

{**************************************}

function GetIPFromHost(const HostName: string): string;
type
 TaPInAddr = array[0..10] of PInAddr;
 PaPInAddr = ^TaPInAddr;
var
 phe: PHostEnt;
 pptr: PaPInAddr;
 i: Integer;
 GInitData: TWSAData;
begin
 WSAStartup($101, GInitData);
 Result := "";
 phe := GetHostByName(PChar(HostName));
 if phe = nil then Exit;
 pPtr := PaPInAddr(phe^.h_addr_list);
 i := 0;
 while pPtr^[i] <> nil do
 begin
   Result := inet_ntoa(pptr^[i]^);
   Inc(i);
 end;
 WSACleanup;
end;



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

Форум: "Сети";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.049 c
7-1078397406
Mamontenok
2004-03-04 13:50
2004.04.25
ОС


9-1067169108
Dmk
2003-10-26 14:51
2004.04.25
Умножение матриц


4-1077629728
ProNix
2004-02-24 16:35
2004.04.25
Как програмно инсталлировать Сервис


1-1081268682
Grel0m
2004-04-06 20:24
2004.04.25
edit и мемо


1-1081628476
Ertong
2004-04-11 00:21
2004.04.25
Proxies.dcu





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский