Текущий архив: 2005.12.11;
Скачать: CL | DM;
ВнизMX-запись из DNS Найти похожие ветки
← →
Wistler © (2005-08-30 14:15) [0]Доброго времени суток.
Необходимо получить MX-запись. Проблема в том, что не могу получить запрос на свой ответ. Код приведён ниже.Var
WSData:WSAData;
S, RS:Integer;
SockAddr, ToAddr, Local:sockaddr_in;
Res:Integer;
Request:String;
Buf, RBuf:Array of Byte;
I:Word;
L:Integer;
begin
WSAStartup(514, WSData);
RS:=socket(AF_INET, SOCK_DGRAM, 0);
Local.sin_family:=AF_INET;
Local.sin_port:=htons(53);
Local.sin_addr.S_addr:=htonl(INADDR_ANY);
bind(RS, Local, SizeOf(Local));
S:=socket(AF_INET, SOCK_DGRAM, 0);
SockAddr.sin_family:=AF_INET;
SockAddr.sin_port:=htons(53);
SockAddr.sin_addr.S_addr:=htonl(INADDR_ANY);
bind(S, SockAddr, SizeOf(SockAddr));
SetLength(RBuf, 10000);
ToAddr.sin_family:=AF_INET;
ToAddr.sin_port:=htons(53);
ToAddr.sin_addr.S_addr:=inet_addr("192.168.1.1");
If connect(S, ToAddr, SizeOf(ToAddr))<>SOCKET_ERROR then
begin
Randomize;
Request:=WordToTwoCharStr(Random(65536));
Request:=Request+WordToTwoCharStr(0);
Request:=Request+WordToTwoCharStr(1);
Request:=Request+Chr(0)+Chr(0)+Chr(0)+Chr(0)+Chr(0)+Chr(0);
Request:=Request+DoDomainName("mail.ru")+Chr(0);
Request:=Request+WordToTwoCharStr(15);
Request:=Request+WordToTwoCharStr(1);
SetLength(Buf, Length(Request));
For I:=1 to Length(Request) do
Buf[I-1]:=Byte(Request[I]);
Res:=send(S, Buf, Length(Buf), 0);
If Res=SOCKET_ERROR then
ShowMessage("Send Error");
end
else
ShowMessage("Connect failed");
closesocket(S);
Res:=SOCKET_ERROR;
While Res=SOCKET_ERROR do
begin
Res:=recv(RS, RBuf, Length(RBuf), 0);
If Res<>SOCKET_ERROR then Break;
end;
ShowMessage("Recive");
WSACleanup;
← →
Wistler © (2005-08-30 14:51) [1]Описался, конечно, не запрос на ответ, а ответ на запрос
Страницы: 1 вся ветка
Текущий архив: 2005.12.11;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.038 c