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.
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.
| 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. |
Importante: Usa questa funzione in pagine protette con autenticazione propria. Esporre la chiamata senza protezione permette a qualsiasi utente di bloccare IP arbitrari.
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) = "RU" 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.
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 == "RU") {
$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.
Tieni presente i seguenti aspetti quando integri questa funzione nella tua applicazione:
BlockIp() con una sessione utente autenticata.
FlexFirewallManager.Admin richiede Windows Server con l'estensione installata.