Nueva Extensión para Plesk. Protección Antivirus para mejorar la seguridad de tu servidor. ¿Por qué elegir Flex Antivirus?
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 de un dominio válido en Plesk.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| Username | String | Requerido | Usuario del dominio Plesk con acceso a la extensión. |
| Password | String | Requerido | Contraseña del usuario del dominio Plesk. |
| 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 Dominio Plesk"
App.Password = "Clave Dominio Plesk"
' 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 Dominio Plesk";
$app->Password = "Clave Dominio Plesk";
// 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 panel de Plesk.
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.