![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DNS запрос [D5, Win95/98, WinME, NT4, Win2k, WinXP]
Аноним © (2003-08-20 22:25:00)
Ребята! Подскажите где можна найти инфу как посылать DNS-запросы по протоколу UDP. А самое главное как их формировать? Мне самому надо определять IP отправителя, UDP-порт и ID ответа. Подскажите где искать. Перерыл кучк документации по WinSock - ничего нужного.
Verg (2003-08-22 04:55:00) [1]
> А на голом АПИ без компонентов можна?
Эт-то уже напоминает "на голом компе без ОС можна?"
Люди думали, старались, отлаживали, вылавливали глюки, добивались "кросс-платформы".... дают исходники классов(не компонентов, это для тех у кого слово "компонента" вызывает аллергию) - нате, типа, пользуйтесь, не верите - проверьте сами...
Rouse_ (2003-08-22 00:55:00) [2]
Как я понял Вам нужно вывести вместо страницы запрашиваемой пользователем свою (или свой ответ)? (Это с оговоркой что Вы Админ).
Тогда зачем подделывать IP?
А на голом API
WSAStartup..
Socket...
Bind...
и т.д. Все есть в хелпах и FAQ
Желаю успехов
Аноним (2003-08-21 22:17:00) [3]
А на голом АПИ без компонентов можна?
Аноним (2003-08-21 13:31:00) [4]
>кул хацкеры млин...
Я админ вообще то.......
Голова (2003-08-21 09:37:00) [5]
кул хацкеры млин...
Аноним (2003-08-21 08:42:00) [6]
>Это означает что пакет уже принят? Ну раз так, то порт Вам уже >известен.
>Что значит IP отправителя? Вам известен URL отправителя?
Пакет еще не принят, его нужно отправить. А Ip - подделать.
Verg (2003-08-21 07:18:00) [7]
Уже опять :)
http://www.ararat.cz/synapse/
Там прям такой класс есть TDNSSend
все в исходниках!
И даже для особо одаренных:
function GetMailServers(const DNSHost, Domain: string;
const Servers: TStrings): Boolean;
var
DNS: TDNSSend;
t: TStringList;
n, m, x: Integer;
begin
Result := False;
Servers.Clear;
t := TStringList.Create;
DNS := TDNSSend.Create;
try
DNS.DNSHost := DNSHost;
if DNS.DNSQuery(Domain, QType_MX, t) then
begin
{ normalize preference number to 5 digits }
for n := 0 to t.Count - 1 do
begin
x := Pos(",", t[n]);
if x > 0 then
for m := 1 to 6 - x do
t[n] := "0" + t[n];
end;
{ sort server list }
t.Sorted := True;
{ result is sorted list without preference numbers }
for n := 0 to t.Count - 1 do
begin
x := Pos(",", t[n]);
Servers.Add(Copy(t[n], x + 1, Length(t[n]) - x));
end;
Result := True;
end;
finally
DNS.Free;
t.Free;
end;
end;
Rouse_ (2003-08-20 23:43:00) [8]
> надо определять IP отправителя, UDP-порт
Это означает что пакет уже принят? Ну раз так, то порт Вам уже известен.
Что значит IP отправителя? Вам известен URL отправителя?
Поконкретней пожалуйста
Желаю успехов
aralekin (2003-08-20 22:40:00) [9]
Можно попробовать стандартным компонентом TUdpSocket .... я на подобие делал.... но вот только в локалке....