
19.08.2009, 09:23
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
o_O тыбы еще искал в инете как регить пример x=2/0
Кидаю кусок из первого моего бота который был писан в далёкие времена на Delphi
Код:
if WSAStartup($202, WSData)=-1 then exit;
MyID:=Get_ID;
reply:='';
while true do
begin
ServIP:=GetIPAddress(server_host);
post_data:='id='+MyID+'&reply='+reply;
reply:='';
sbuf:='POST '+server_script+' HTTP/1.0'#13#10+
'Host: '+server_host+#13#10+
'Content-Type: application/x-www-form-urlencoded'+#13#10+
'Content-Length: '+inttostr(length(post_data))+#13#10#13#10+post_data+#13#10;
if (send_packs(ServIP,server_port,sbuf,rbuf)>0) then
begin
rbuf содержит ответ сервера без служебных заголовков
end;
......................
function GetIPAddress(name: string): string;
var
p:PHostEnt;
begin
p:=GetHostByName(PChar(name));
if p=nil then result:=name else result:=inet_ntoa(PInAddr(p.h_addr_list^)^);
end;
procedure GetContend(var data:string);
begin
delete(data,1,pos(#13#10#13#10,data)+3);
end;
function send_packs(ip:string; port:word; send_buf:string; var recv_buf:string):integer;
var
SockAddrIn:TSockAddrIn;
tmp_buf:array [0..255] of char;
len:longint;
socket_id:LongWord;
begin
result:=-10;
socket_id:=socket(2, 1, 6);
if socket_id=LongWord(-1) then exit;
SockAddrIn.sin_family := 2;
SockAddrIn.sin_port := htons(port);
SockAddrIn.sin_addr.s_addr := inet_addr(Pansichar(ip));
result:=-20;
if connect(socket_id, @SockAddrIn, SizeOf(SockAddrIn))<>0 then
begin
closesocket(socket_id);
exit;
end;
send(socket_id,send_buf[1],length(send_buf),0);
recv_buf:='';
repeat
len:=recv(socket_id,tmp_buf,255,0);
recv_buf:=recv_buf+copy(tmp_buf,1,len);
until len<=0;
GetContend(recv_buf);
result:=length(recv_buf);
closesocket(socket_id);
end;
|
|
|