API — Programmazione Web

Come bloccare un IP di un paese - Cina

Integra la funzione di blocco degli IP direttamente nella tua applicazione web se appartiene a un paese specifico. Compatibile con ASP classico e PHP tramite l'oggetto COM dell'estensione.

ASP Classico PHP XML / JSON

Funzione BlockIp(IP,Rulename)

Dalla tua pagina web — nel tuo index.asp, index.php o in qualsiasi sezione della tua applicazione — puoi chiamare questa funzione per bloccare un indirizzo IP tramite il Firewall Manager. Richiede credenziali valide.

1 Parametri richiesti


Parametro Tipo Obbligatorio Descrizione
Username String Obbligatorio Utente di sistema.
Password String Obbligatorio Password dell'utente.
FormatOutput String Facoltativo Formato della risposta: xml (predefinito) o json.
IP String Obbligatorio Indirizzo IPv4 o IPv6 da bloccare.
Rulename String Facoltativo Nome della regola a cui assegnare l'indirizzo IP. Non usare per impostazione predefinita.
Valori di ritorno json/xml
result
(true o false) Stato della richiesta di blocco.
app
Sito in cui era bloccato: Windows, MailEnable, Cloudflare
desc
Se il risultato è negativo, mostrerà informazioni sul motivo.

Importante: Usa questa funzione in pagine protette con autenticazione propria. Esporre la chiamata senza protezione permette a qualsiasi utente di bloccare IP arbitrari.

2 Esempio in ASP Classico


Istanzia l'oggetto COM FlexFirewallManager.Admin, imposta le credenziali e chiama UnlockIP(). La risposta viene analizzata come XML.

' Crea istanza dell'oggetto COM Set App = CreateObject("FlexFirewallManager.Admin") App.FormatOutput = "xml" App.Username = "Utente di Sistema" App.Password = "Password Utente" ' IP da bloccare Dim strCountry : strIP = Request.ServerVariables("HTTP_X_FIREWALL_COUNTRY") Dim strIP : strIP = Request.ServerVariables("HTTP_X_FIREWALL_IP") If strIP = "" Then strIP = Request.ServerVariables("REMOTE_ADDR") ' Metodo 1 If strCountry = "CN" Then App.BlockIp(strIP) End If ' Metodo 2 Dim returnstring : returnstring = App.InfoIP(strIP) ' Analizza risposta XML Set objxml = CreateObject("Msxml2.DOMDocument") objxml.LoadXml(returnstring) If LCase(objxml.SelectSingleNode("/output/result").text) = "true" Then If UCase(objxml.SelectSingleNode("/output/countrycode").text) = "CN" Then App.BlockIp(strIP) End If End If

Puoi usare FormatOutput = "json" se preferisci analizzare la risposta con JSON.parse invece di XML. Il formato JSON è consigliato per le applicazioni moderne.

3 Esempio in PHP


In PHP, istanzia l'oggetto COM con new COM(). Usa il formato json per analizzare la risposta direttamente con json_decode().

// Crea istanza dell'oggetto COM $app = new COM("FlexFirewallManager.Admin"); $app->FormatOutput = "json"; $app->Username = "Utente di Sistema"; $app->Password = "Password Utente"; // IP da bloccare $strCountry = $_SERVER['HTTP_X_FIREWALL_COUNTRY'];; $strIP = $_SERVER['HTTP_X_FIREWALL_IP'];; if ($strIP=="") { $strIP = $_SERVER['REMOTE_ADDR'];; } // Metodo 1 if ($strCountry == "CN") { $app->BlockIp($strIP); } // Metodo 2 $returnstring = $app->InfoIP($strIP); // Analizza risposta JSON $appjson = json_decode($returnstring); if ($appjson->result) { if ($appjson->countrycode == "CN") { $app->BlockIp($strIP); } }

Suggerimento: Puoi combinare questa funzione con un modulo di amministrazione interno affinché i tuoi utenti possano autogestire il blocco del proprio IP senza dover accedere all'amministratore.

4 Note di implementazione


Tieni presente i seguenti aspetti quando integri questa funzione nella tua applicazione:

Autenticazione preliminare Proteggi sempre la pagina che chiama BlockIp() con una sessione utente autenticata.
Solo su Windows Server L'oggetto COM FlexFirewallManager.Admin richiede Windows Server con l'estensione installata.
Credenziali sicure Non includere mai nome utente e password nel codice sorgente accessibile pubblicamente. Usa variabili d'ambiente o file di configurazione esterni.
Sincronizzazione con Cloudflare Se hai l'integrazione con Cloudflare attiva, il blocco verrà applicato solo alle regole di Cloudflare.