Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Indy10 TCPServer Spam erkennen, hohe CPU Auslastung

  Alt 1. Okt 2024, 13: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)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

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