Intègre la fonction de blocage d'IP directement dans votre application web si elle appartient à un pays précis. Compatible avec ASP classique et PHP via l'objet COM de l'extension.
BlockIp(IP,Rulename)Depuis votre page web — dans votre index.asp, index.php ou toute section de votre application — vous pouvez appeler cette fonction pour bloquer une adresse IP via le Firewall Manager. Nécessite des identifiants valides.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| Username | String | Requis | Utilisateur du système. |
| Password | String | Requis | Mot de passe de l'utilisateur. |
| FormatOutput | String | Optionnel | Format de réponse : xml (défaut) ou json. |
| IP | String | Requis | Adresse IPv4 ou IPv6 à bloquer. |
| Rulename | String | Optionnel | Nom de la règle à laquelle assigner l'adresse IP. Par défaut, ne pas utiliser. |
Important : Utilisez cette fonction sur des pages protégées par votre propre authentification. Exposer cet appel sans protection permet à n'importe quel utilisateur de bloquer des IP arbitraires.
Instanciez l'objet COM FlexFirewallManager.Admin, définissez les identifiants et appelez UnlockIP(). La réponse est analysée en tant que XML.
' Créer l'instance de l'objet COM
Set App = CreateObject("FlexFirewallManager.Admin")
App.FormatOutput = "xml"
App.Username = "Utilisateur du système"
App.Password = "Mot de passe de l'utilisateur"
' IP à bloquer
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")
' Méthode 1
If strCountry = "CN" Then
App.BlockIp(strIP)
End If
' Méthode 2
Dim returnstring : returnstring = App.InfoIP(strIP)
' Analyser la réponse 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
Vous pouvez utiliser FormatOutput = "json" si vous préférez analyser la réponse avec JSON.parse plutôt qu'en XML. Le format JSON est recommandé pour les applications modernes.
En PHP, instanciez l'objet COM avec new COM(). Utilisez le format json pour analyser la réponse directement avec json_decode().
// Créer l'instance de l'objet COM
$app = new COM("FlexFirewallManager.Admin");
$app->FormatOutput = "json";
$app->Username = "Utilisateur du système";
$app->Password = "Mot de passe de l'utilisateur";
// IP à bloquer
$strCountry = $_SERVER['HTTP_X_FIREWALL_COUNTRY'];;
$strIP = $_SERVER['HTTP_X_FIREWALL_IP'];;
if ($strIP=="") { $strIP = $_SERVER['REMOTE_ADDR'];; }
// Méthode 1
if ($strCountry == "CN") {
$app->BlockIp($strIP);
}
// Méthode 2
$returnstring = $app->InfoIP($strIP);
// Analyser la réponse JSON
$appjson = json_decode($returnstring);
if ($appjson->result) {
if ($appjson->countrycode == "CN") {
$app->BlockIp($strIP);
}
}
Astuce : Vous pouvez combiner cette fonction avec un formulaire d'administration interne afin que vos utilisateurs gèrent eux-mêmes le blocage de leur propre IP sans avoir à accéder à l'administrateur.
Tenez compte des aspects suivants lors de l'intégration de cette fonction dans votre application :
BlockIp() par une session utilisateur authentifiée.
FlexFirewallManager.Admin nécessite Windows Server avec l'extension installée.