API — Programmation Web

Comment bloquer une IP d'un pays - Russie

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.

ASP Classique PHP XML / JSON

Fonction 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.

1 Paramètres requis


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.
Valeurs de retour json/xml
result
(true ou false) État de la demande de blocage.
app
Site où l'IP était bloquée : Windows, MailEnable, Cloudflare
desc
Si le résultat est négatif, affiche des informations sur la raison.

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.

2 Exemple en ASP Classique


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 = "RU" 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) = "RU" 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.

3 Exemple en PHP


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 == "RU") { $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 == "RU") { $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.

4 Notes d'implémentation


Tenez compte des aspects suivants lors de l'intégration de cette fonction dans votre application :

Authentification préalable Protégez toujours la page qui appelle BlockIp() par une session utilisateur authentifiée.
Uniquement sur Windows Server L'objet COM FlexFirewallManager.Admin nécessite Windows Server avec l'extension installée.
Identifiants sécurisés N'incluez jamais l'utilisateur et le mot de passe dans un code source accessible publiquement. Utilisez des variables d'environnement ou des fichiers de configuration externes.
Synchronisation avec Cloudflare Si vous avez l'intégration Cloudflare active, le blocage ne sera effectué que sur les règles de Cloudflare.