Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#2

AW: Indy10 TCPServer Spam erkennen, hohe CPU Auslastung

  Alt 1. Okt 2024, 14:09
Erstmal solltest du dich mit regulären Ausdrücken dringend mal beschäftigen,
denn '123456789' ~ '12.45.78.'

Weil . ist das, was im Dateisystem ein ? ist.

Da doch sowieso immer nur am Anfang geschaut werden soll, noch ein ^ mit rein,
einmal, damit nicht sinnlos nachfolgendes geprüft wird
und weil '123.45xxxx' ~ '3.45' sonst auch trifft, obwohl 123 <> 3.




if TRegEx.IsMatch(AContext.Connection.Socket.Binding.PeerIP, '^(XX\.XX\.XX\.|XX\.XX\.XX\.)') then

Delphi-Quellcode:
// irgendwo vorher einmal initialisieren
RegEx := TRegEx.Create('^(XX\.XX\.XX\.|XX.XX\.XX\.)');

// und im Event nur noch
if RegEx.IsMatch(AContext.Connection.Socket.Binding.PeerIP) then
Oder wie wäre es mit einem einfachen String-Vergleich, wenn es eh nur um einen String-Anfang geht?
Delphi-Quellcode:
if
  StartsStr('XX.XX.XX.', AContext.Connection.Socket.Binding.PeerIP) OR
  StartsStr('XX.XX.XX.', AContext.Connection.Socket.Binding.PeerIP)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 1. Okt 2024 um 14:16 Uhr)
  Mit Zitat antworten Zitat