Nuova Estensione per Plesk. Protezione Antivirus per migliorare la sicurezza del tuo server. Perché scegliere Flex Antivirus?

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 di un dominio valido in Plesk.

1 Parametri richiesti


Parametro Tipo Obbligatorio Descrizione
Username String Obbligatorio Utente del dominio Plesk con accesso all'estensione.
Password String Obbligatorio Password dell'utente del dominio Plesk.
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 Dominio Plesk" App.Password = "Password Dominio Plesk" ' 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 Dominio Plesk"; $app->Password = "Password Dominio Plesk"; // 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 al pannello Plesk.

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.