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

Вниз

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

 
SiONYX   (2003-09-09 02:30) [0]

Собственно сабж :)


 
panov ©   (2003-09-09 09:37) [1]

gethostbyaddr


 
SiONYX   (2003-09-10 00:51) [2]

Вопрос о параметрах:

Что за последний параметр функции? В Developer"s References (SDK поставляемое с Дельфи) параметра описан как int type, в модуле WinSock описан как Struct:integer.

Но при этом каких либо комментариев в референсес я не нашел.
Я поптался сделать так (я разбил на две строки, чтобы исключить возможность неправильной конвертации типа - конвертируется верно):

pAddr:=PChar(Addr);
HE:=gethostbyaddr(pAddr,Length(Addr),0);


Постоянно выдает nil
Может я что не так делаю?


 
SiONYX   (2003-09-10 00:53) [3]

В "Королевстве Дельфи" нашел следующее:

Как-то чудно ведет себя функция gethostbyaddr.
Если после запуска программы я сначала нахожу ip адрес
по имени компа при помощи gethostbyname, а потом обращаюсь
к нему при помощи gethostbyaddr - все Ok.
Но если обращаться сразу при помощи gethostbyaddr - результат Nil.


Ответа на вопрос нет. Может кто что знает?


 
Вася Пупкин ©   (2003-09-10 01:30) [4]

........
hp:=gethostbyaddr(pchar(@Addr),SizeOf(Addr),AF_INET);
if hp=nil then
begin
writeln("gethostbyaddr() failed. Error: ",WSAGetLastError());
ExitProcess(STATUS_FAILED);
end;


 
Вася Пупкин ©   (2003-09-10 01:30) [5]

........
hp:=gethostbyaddr(pchar(@Addr),SizeOf(Addr),AF_INET);
if hp=nil then
begin
writeln("gethostbyaddr() failed. Error: ",WSAGetLastError());
ExitProcess(STATUS_FAILED);
end;


 
Вася Пупкин ©   (2003-09-10 01:32) [6]

addr
[in] Pointer to an address in network byte order
Например:
Addr := inet_addr(PChar(ParamStr(1)));
или
Addr := inet_addr("127.0.0.1");


 
Zeon ©   (2003-09-10 02:15) [7]

function GetHostByIP(IPAddr: String): String;
var
Error: DWORD;
SockAddrIn: TSockAddrIn;
HostEnt: PHostEnt;
Data: TWSAData;
begin
Result:="Error";
Error:=WSAStartup($101, Data);
if Error = 0 then begin
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);
end; // Error=0
WSACleanup();
end;



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

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

Наверх




Память: 0.48 MB
Время: 0.052 c
3-41073
Vadim S
2003-10-23 16:54
2003.11.13
Как одним запросом???


3-40970
Коля
2003-10-16 08:20
2003.11.13
Странности сетевого пути к GDB-файлу


3-40955
P0tia
2003-10-17 11:15
2003.11.13
Поиск в Базе


3-40892
diokant
2003-10-20 11:58
2003.11.13
Как обеспечить отображение в TDBCheckBox null и false как не вы..


1-41162
tria
2003-11-03 11:04
2003.11.13
Как сделать в ToolBar кнопки разной ширины?