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

Вниз

Как зная 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.039 c
4-42235
Linuxoid
2003-08-31 15:42
2003.11.13
Access violation...


6-41841
LiViD
2003-09-12 19:27
2003.11.13
Прием/посылка файловых потоков через сокетное соединение.


1-41641
Ig
2003-10-25 23:01
2003.11.13
Sender или как сделать это


3-40786
pashaz
2003-10-22 20:52
2003.11.13
база MDB и DBGrid


1-41248
MaG
2003-10-31 21:42
2003.11.13
Файловая система





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский