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)