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

Вниз

Быстрый 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.018 c
14-54190
SergeN
2003-03-03 07:53
2003.03.17
30 декабря 1899


14-54226
Серж
2003-02-27 18:49
2003.03.17
Степень!


1-54088
BillyJeans
2003-03-05 13:29
2003.03.17
Новый class и его property


1-54038
crazy_2k
2003-03-05 00:58
2003.03.17
Как подсчитать количество таблиц в БД.


8-54124
Сергей2002
2002-12-04 14:33
2003.03.17
Помогите, пожалуйста