TsgcWebSocketFirewallEventi › OnResolveCountry

OnResolveCountry Evento

Viene attivato durante la valutazione GeoIP in modo che l'applicazione possa fornire un codice paese personalizzato per un indirizzo IP.

Sintassi

property OnResolveCountry: TsgcFirewallOnResolveCountry;
// TsgcFirewallOnResolveCountry = procedure(Sender: TObject; const aIP: string; var aCountryCode: string) of object

Valore predefinito

Note

OnResolveCountry viene sollevato dal modulo GeoIP quando deve mappare aIP a un paese. Il database CSV integrato (caricato tramite LoadGeoIPDatabase) viene consultato per primo; l'evento viene invocato affinché la Sua applicazione possa sovrascrivere o integrare il risultato con una ricerca su una fonte diversa (database MaxMind di terze parti, un servizio REST, una cache interna, ecc.). Assegni il codice ISO 3166-1 alpha-2 di due lettere (per esempio "US", "DE", "CN") al parametro var aCountryCode. Restituisca una stringa vuota per lasciare l'IP non classificato (le regole di allow/block GeoIP lo tratteranno quindi come sconosciuto). Il gestore viene eseguito nel thread I/O del server; viene invocato a ogni connessione quando GeoIP è abilitato, quindi memorizzi aggressivamente in cache le ricerche ed eviti chiamate di rete bloccanti.

Esempio

procedure TForm1.sgcWebSocketFirewall1ResolveCountry(Sender: TObject;
  const aIP: string; var aCountryCode: string);
begin
  // quick in-memory cache
  aCountryCode := FCountryCache.Values[aIP];
  if aCountryCode <> '' then
    Exit;

  // fall back to your own GeoIP provider
  aCountryCode := MyGeoIPProvider.Lookup(aIP);
  if aCountryCode <> '' then
    FCountryCache.Values[aIP] := aCountryCode;
end;

Torna agli Eventi