Integra a função de bloqueio de IPs diretamente na sua aplicação web caso pertença a um país específico. Compatível com ASP clássico e PHP através do objeto COM da extensão.
BlockIp(IP,Rulename)A partir da sua página web — no seu index.asp, index.php ou qualquer seção da sua aplicação — você pode chamar esta função para bloquear um endereço IP através do Firewall Manager. Requer credenciais válidas.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| Username | String | Obrigatório | Usuário do sistema. |
| Password | String | Obrigatório | Senha do usuário. |
| FormatOutput | String | Opcional | Formato da resposta: xml (padrão) ou json. |
| IP | String | Obrigatório | Endereço IPv4 ou IPv6 que se deseja bloquear. |
| Rulename | String | Opcional | Nome da regra em que atribuir o endereço IP. Não usar por padrão. |
Importante: Use esta função em páginas protegidas com autenticação própria. Expor a chamada sem proteção permite que qualquer usuário bloqueie IPs arbitrários.
Instancie o objeto COM FlexFirewallManager.Admin, defina as credenciais e chame UnlockIP(). A resposta é interpretada como XML.
' Criar instância do objeto COM
Set App = CreateObject("FlexFirewallManager.Admin")
App.FormatOutput = "xml"
App.Username = "Usuário do Sistema"
App.Password = "Senha do Usuário"
' 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")
' Método 1
If strCountry = "CN" Then
App.BlockIp(strIP)
End If
' Método 2
Dim returnstring : returnstring = App.InfoIP(strIP)
' Interpretar resposta 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
Você pode usar FormatOutput = "json" se preferir interpretar a resposta com JSON.parse em vez de XML. O formato JSON é recomendado para aplicações modernas.
Em PHP, instancie o objeto COM com new COM(). Use o formato json para interpretar a resposta diretamente com json_decode().
// Criar instância do objeto COM
$app = new COM("FlexFirewallManager.Admin");
$app->FormatOutput = "json";
$app->Username = "Usuário do Sistema";
$app->Password = "Senha do Usuário";
// IP a bloquear
$strCountry = $_SERVER['HTTP_X_FIREWALL_COUNTRY'];;
$strIP = $_SERVER['HTTP_X_FIREWALL_IP'];;
if ($strIP=="") { $strIP = $_SERVER['REMOTE_ADDR'];; }
// Método 1
if ($strCountry == "CN") {
$app->BlockIp($strIP);
}
// Método 2
$returnstring = $app->InfoIP($strIP);
// Interpretar resposta JSON
$appjson = json_decode($returnstring);
if ($appjson->result) {
if ($appjson->countrycode == "CN") {
$app->BlockIp($strIP);
}
}
Dica: Você pode combinar esta função com um formulário de administração interno para que seus usuários gerenciem por conta própria o bloqueio do próprio IP sem precisar acessar o administrador.
Leve em conta os seguintes aspectos ao integrar esta função na sua aplicação:
BlockIp() com uma sessão de usuário autenticado.
FlexFirewallManager.Admin requer Windows Server com a extensão instalada.