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

Вниз

Быстрый gethostbyaddr   Найти похожие ветки 

 
dumb   (2003-01-27 09:10) [0]

Вот такой стандартный код, но мне кажется он работает медленно. Вы можете сказать, что это из-за конфигурации моей сети и т.д. Возможно.. Я прошу вас показать мне какой-нибудь аналог для сравнения.


function GetHostName(AIP: string) : string;
var
wsdata : TWSAData;
he : PHostEnt;
ip : TInAddr;

begin
Result := AIP;
WSAStartup(MakeWord(1, 1), wsdata);
ip.S_addr := inet_addr(PChar(AIP));
he := gethostbyaddr(@ip.S_un_b, 4, AF_INET);
if he<>nil then
Result := string(he.h_name);
WSACleanup();
end;


 
dumb   (2003-01-27 09:21) [1]

Желательно с TIdDNSResolver :)


 
dumb   (2003-01-27 14:49) [2]

Еще одно наблюдение, которое подтверждает мои опасения - системная утилита nslookup работает мгновенно, а gethostbyaddr - гораздо медленнее. Разница ощущается букально невооруженным глазом. Особенно это ощущается при лукапе IP несуществующих доменов - nslookup возвращает ответ мгновенно, gethostbyaddr - "думает" 4-5 секунд.


 
Wonder   (2003-01-27 15:17) [3]

nslookup, насколько я помню, не использует вызов gethostbyaddr, а общается с name-сервером напрямую, в следствие чего и работает быстрее.

Именно твой код, на мой взгляд, "убыстрить" нереально :) Т.е. он работает как и должен работать.


 
dumb   (2003-01-27 15:22) [4]

Совершенно верно. Мой код убыстрять не надо, мне надо аналог моей функции, но, как вы правильно сказали, работающий напрямую (как nslookup).


 
Wonder   (2003-01-27 15:46) [5]

К сожалению, таких задач не решал.
Совет: взять исходники nslookup-а (например, под Linux) и портировать на win32.
Можно попытаться в Сети найти исходники сразу под win32, хотя это маловероятно...



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

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

Наверх





Память: 0.45 MB
Время: 0.008 c
7-54352
tararasyk
2003-01-20 20:24
2003.03.17
Активная раскладка клавиатуры


9-53830
Kirushka
2002-10-16 17:47
2003.03.17
Delphi и OpenGL


14-54169
C_R_U_C_H
2003-03-01 21:44
2003.03.17
Связь форм


4-54364
John
2003-01-23 21:35
2003.03.17
Как узнать путь к файлу откуда была запущена моя программа?


14-54296
SGh
2003-02-28 19:13
2003.03.17
Не могу запустить WinSight второй раз





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