Это на Indy фэйк CS сервера
udp.Binding.PeerIP и udp.Binding.PeerPort это обратный адрес и порт клиента, а udp.Binding.IP и udp.Binding.Port это адрес ипорт твоего сервера.
Код | ... procedure TForm1.UDPUDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle); var str : TstringStream; pkt : string; begin str:=tstringstream.Create(''); try str.CopyFrom(AData, AData.Size); pkt:=str.DataString; finally str.Free; end; IF pos(#$FF+#$FF+#$FF+#$FF+#$54+'Source Engine Query'+#$00,pkt)=1 THEN BEGIN udp.Send(udp.Binding.PeerIP,udp.Binding.PeerPort, #$FF+#$FF+#$FF+#$FF+#$6D+ 'localhost:port'+#$00+ //address 'Fake Server Name'+#$00+ // Name 'Map'+#$00+ // map 'DirectoryMod'+#$00+ // cstrike 'Game Name'+#$00+ // Counter-Strike #$AB+ // Current Players #$BB+ // Max Players #$2F+ // Number bots ? hz, const #$64+ // 'l' for listen, 'd' for dedicated, 'p' for SourceTV #$6C+ // Host operating system. 'l' for Linux, 'w' for Windows #$01+ // Password, 0x01 is protected #$01+ // If set to 0x01, this server use ModInfo 'FakeServer.com'+#$00 // other info ); // memo1.Lines.Add('#ClientIP: '+udp.Binding.PeerIP+#13#10+'#Take fake data :)'); END; end;
procedure TForm1.Button1Click(Sender: TObject); begin udp.Active:=true; {if udp.Active=false then begin memo1.Lines.Add('Error'); exit; end else begin memo1.Lines.Add('Server Startup'); memo1.Lines.Add('IP:'+udp.Binding.IP); memo1.Lines.Add('Port:'+IntToStr(udp.Binding.Port)); end; } end;
end.
|
|