API — Webprogrammierung

So sperren Sie eine IP eines Landes - China

Integriert die IP-Sperrfunktion direkt in Ihre Webanwendung, wenn diese zu einem bestimmten Land gehört. Kompatibel mit klassischem ASP und PHP über das COM-Objekt der Erweiterung.

Klassisches ASP PHP XML / JSON

Funktion BlockIp(IP,Rulename)

Von Ihrer Webseite aus — in Ihrer index.asp, index.php oder einem beliebigen Teil Ihrer Anwendung — können Sie diese Funktion aufrufen, um eine IP-Adresse über den Firewall Manager zu sperren. Erfordert gültige Zugangsdaten.

1 Erforderliche Parameter


Parameter Typ Erforderlich Beschreibung
Username String Erforderlich Systembenutzer.
Password String Erforderlich Passwort des Benutzers.
FormatOutput String Optional Antwortformat: xml (Standard) oder json.
IP String Erforderlich Zu sperrende IPv4- oder IPv6-Adresse.
Rulename String Optional Name der Regel, der die IP-Adresse zugewiesen werden soll. Standardmäßig nicht verwenden.
Rückgabewerte json/xml
result
(true oder false) Status der Sperranfrage.
app
Ort, an dem die IP gesperrt wurde: Windows, MailEnable, Cloudflare
desc
Bei negativem Ergebnis werden Informationen zum Grund angezeigt.

Wichtig: Verwenden Sie diese Funktion nur auf Seiten, die durch eine eigene Authentifizierung geschützt sind. Ein ungeschützter Aufruf ermöglicht es jedem Benutzer, beliebige IPs zu sperren.

2 Beispiel in klassischem ASP


Instanziieren Sie das COM-Objekt FlexFirewallManager.Admin, legen Sie die Zugangsdaten fest und rufen Sie UnlockIP() auf. Die Antwort wird als XML analysiert.

' COM-Objektinstanz erstellen Set App = CreateObject("FlexFirewallManager.Admin") App.FormatOutput = "xml" App.Username = "Systembenutzer" App.Password = "Passwort des Benutzers" ' Zu sperrende IP 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") ' Methode 1 If strCountry = "CN" Then App.BlockIp(strIP) End If ' Methode 2 Dim returnstring : returnstring = App.InfoIP(strIP) ' XML-Antwort analysieren 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

Sie können FormatOutput = "json" verwenden, wenn Sie die Antwort lieber mit JSON.parse statt XML analysieren möchten. Das JSON-Format wird für moderne Anwendungen empfohlen.

3 Beispiel in PHP


Instanziieren Sie in PHP das COM-Objekt mit new COM(). Verwenden Sie das Format json, um die Antwort direkt mit json_decode() zu analysieren.

// COM-Objektinstanz erstellen $app = new COM("FlexFirewallManager.Admin"); $app->FormatOutput = "json"; $app->Username = "Systembenutzer"; $app->Password = "Passwort des Benutzers"; // Zu sperrende IP $strCountry = $_SERVER['HTTP_X_FIREWALL_COUNTRY'];; $strIP = $_SERVER['HTTP_X_FIREWALL_IP'];; if ($strIP=="") { $strIP = $_SERVER['REMOTE_ADDR'];; } // Methode 1 if ($strCountry == "CN") { $app->BlockIp($strIP); } // Methode 2 $returnstring = $app->InfoIP($strIP); // JSON-Antwort analysieren $appjson = json_decode($returnstring); if ($appjson->result) { if ($appjson->countrycode == "CN") { $app->BlockIp($strIP); } }

Tipp: Sie können diese Funktion mit einem internen Verwaltungsformular kombinieren, damit Ihre Benutzer die Sperrung ihrer eigenen IP selbst verwalten können, ohne auf die Verwaltung zugreifen zu müssen.

4 Hinweise zur Implementierung


Beachten Sie Folgendes bei der Integration dieser Funktion in Ihre Anwendung:

Vorherige Authentifizierung Schützen Sie die Seite, die BlockIp() aufruft, stets durch eine authentifizierte Benutzersitzung.
Nur unter Windows Server Das COM-Objekt FlexFirewallManager.Admin erfordert Windows Server mit installierter Erweiterung.
Sichere Zugangsdaten Fügen Sie Benutzername und Passwort niemals in öffentlich zugänglichen Quellcode ein. Verwenden Sie Umgebungsvariablen oder externe Konfigurationsdateien.
Synchronisierung mit Cloudflare Bei aktivierter Cloudflare-Integration wird die Sperrung nur auf die Regeln von Cloudflare angewendet.