Integra la función de bloqueo de IPs directamente en tu aplicación web si pertenece aun país concreto. Compatible con ASP clásico y PHP mediante el objeto COM de la extensión.
BlockIp(IP,Rulename)Desde tu página web — en tu index.asp, index.php o cualquier sección de tu aplicación — puedes llamar a esta función para bloquear una dirección IP por el Firewall Manager. Requiere credenciales validas.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| Username | String | Requerido | Usuario del sistema. |
| Password | String | Requerido | Contraseña del usuario. |
| FormatOutput | String | Opcional | Formato de respuesta: xml (defecto) o json. |
| IP | String | Requerido | Dirección IPv4 o IPv6 que se desea bloquear. |
| Rulename | String | Opcional | Nombre de la regla donde asignar la dirección IP. Por defect no usar. |
Importante: Usa esta función en páginas protegidas con autenticación propia. Exponer la llamada sin protección permite que cualquier usuario bloquee IPs arbitrarias.
Instancia el objeto COM FlexFirewallManager.Admin, establece las credenciales y llama a UnlockIP(). La respuesta se parsea como XML.
' Crear instancia del objeto COM
Set App = CreateObject("FlexFirewallManager.Admin")
App.FormatOutput = "xml"
App.Username = "Usuario del sistema"
App.Password = "Clave del usuario"
' IP a bloquear
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)
' Parsear respuesta 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
Puedes usar FormatOutput = "json" si prefieres parsear la respuesta con JSON.parse en lugar de XML. El formato JSON es recomendado para aplicaciones modernas.
En PHP, instancia el objeto COM con new COM(). Usa el formato json para parsear la respuesta directamente con json_decode().
// Crear instancia del objeto COM
$app = new COM("FlexFirewallManager.Admin");
$app->FormatOutput = "json";
$app->Username = "Usuario del sistema";
$app->Password = "Clave del usuario";
// IP a bloquear
$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);
// Parsear respuesta JSON
$appjson = json_decode($returnstring);
if ($appjson->result) {
if ($appjson->countrycode == "CN") {
$app->BlockIp($strIP);
}
}
Tip: Puedes combinar esta función con un formulario de administración interno para que tus usuarios autogestionen el bloqueo de su propia IP sin necesidad de acceder al administrador.
Ten en cuenta los siguientes aspectos al integrar esta función en tu aplicación:
BlockIp() con sesión de usuario autenticado.
FlexFirewallManager.Admin requiere Windows Server con la extensión instalada.