Pasar parámetros a un script de acción personalizada
Los scripts de ejemplo de Bash, Python y Perl muestran cómo pasar parámetros a scripts de acción personalizada.
Los scripts de ejemplo simples siguientes muestran cómo consultar la API de modelo de activo para un activo con la dirección IP de origen de infracción proporcionada. Para este ejemplo, la salida de los scripts es el JSON devuelto por el punto final.
Los scripts necesitan tres parámetros:
- Dirección IP de la consola
- Señal de API
- Dirección IP de origen
Estos parámetros de configuran en el área Parámetros de script de la ventana Definir una acción personalizada:

Cada parámetro se pasa al script en el orden en el que se ha añadido en la ventana Definir acción personalizada. En este caso:
- console_ip
- api_token
- offense_source_ip
Las variables que se han definido al principio de cada uno de los scripts de ejemplo utilizan los nombres de parámetro de ejemplo que se han añadido en la ventana Definir acción personalizada.
#!/bin/bash
console_ip=$1
api_token=$2
offense_source_ip=$3
auth_header="SEC:$api_token"
output=$(curl -k -H $auth_header https://$console_ip/console/restapi/api/
asset_model/assets?filter=interfaces%20contains%20%28%20ip_addresses
%20contains%20%28%20value%20%3D%20%22$offense_source_ip%22%29%29)
# Basic print out of the output of the command
echo $output
#!/usr/bin/python
import sys
import requests
console_ip = sys.argv[1]
api_token = sys.argv[2]
offense_source_ip = sys.argv[3]
auth_header = {'SEC' : api_token }
endpoint = "https://{0}/console/restapi/api/asset_model/
assets?filter=interfaces%20contains%20%28%20ip_addresses
%20contains%20%28%20value%20%3D%20%22{1}%22%29%29"
.format(console_ip, offense_source_ip)
response = requests.get(endpoint, headers=auth_header, verify=False)
# Basic print out of the output of the command
print(response.json())
#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;
my $console_ip = $ARGV[0];
my $api_token = $ARGV[1];
my $offense_source_ip = $ARGV[2];
my $endpoint = "https://$console_ip/console/restapi/api/asset_model/
assets?filter=interfaces%20contains%20%28%20ip_addresses
%20contains%20%28%20value%20%3D%20%22$offense_source_ip%22%29%29";
my $client = LWP::UserAgent -> new(ssl_opts => { verify_hostname => 0 });
my $response = $client -> get($endpoint, "SEC" => $api_token);
# Basic print out of the output of the command
print $response -> decoded_content;