Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- procedure Tmain.Send;
- var Update:TUpdate;
- begin
- Update:=TUpdate.Create('domain.ru', '/index.php', 13000);
- update.worked:=true;
- //и все переменные объявлены
- end;
- type TUpdate = class(TThread)
- private
- public
- worked:boolean;url,php:string;time:integer;
- function GetIPAddress(name: string):string;
- constructor Create(domain,data:string;timeout:integer);
- protected
- procedure HttpGet(url,php:String);
- procedure execute;override;
- end;
- constructor TUpdate.Create(domain,data:string;timeout:integer);
- begin
- inherited Create(False);
- end;
- procedure TUpdate.execute;
- var i:integer;
- begin
- while worked do
- begin
- HttpGet(url, php);
- if (time > 2000) then
- Sleep(time) else Sleep(500);
- end;
- end;
- function TUpdate.GetIPAddress(name: string):string;
- var
- p: PHostEnt;
- begin
- try
- p:=gethostbyname(pchar(name));
- if p=nil then result:=''
- else result:=inet_ntoa(PInAddr(p.h_addr_list^)^);
- except end;
- end;
- procedure TUpdate.HttpGet(url,php:String);
- var
- ws: TWSAData;
- TCP_sock:TSocket;
- SockAddr1:TSockAddr;
- packet:string;
- g,i:Integer;
- s:AnsiString;
- read:array[1..1024] of ansichar;
- begin
- WSAStartup($202,ws);
- TCP_sock:=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
- SockAddr1.sin_family:=AF_INET;
- SockAddr1.sin_port:=htons(80);
- SockAddr1.sin_addr.S_addr:=inet_addr(PChar(GetIPAddress(url)));
- connect(TCP_sock, SockAddr1, SizeOf(SockAddr1));
- packet:='GET '+php+' HTTP/1.1'+#13#10+
- 'User-Agent: Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62Version/11.00'+#13#10+
- 'Host: '+url+#13#10+
- 'Accept: text/html, application/xml;q=0.9, application/xhtml+xml,image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1'+#13#10+
- 'Accept-Language: ru-RU,ru;q=0.9,en;q=0.8'+#13#10+
- 'Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1'+#13#10+
- 'Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0'+#13#10+
- 'Connection: close, TE'+#13#10+
- 'TE: deflate, gzip, chunked, identity, trailers'+#13#10+#13#10;
- send(TCP_sock,packet[1],Length(Packet),0);
- s:='';
- repeat
- g:=recv(TCP_sock,read,SizeOf(read),0);
- for i:=1 to g do s:=s+(read[i]);
- until g<=0;
- CloseSocket(TCP_sock);
- WSACleanup;
- end;
Add Comment
Please, Sign In to add comment