---
title: roNetworkConfiguration
slug: develop/es/ronetworkconfiguration
docTags: 
createdAt: 2025-03-11T07:07:18.732Z
---

Este objeto proporciona varios métodos para configurar las interfaces de red en un reproductor BrightSign. El equivalente en JavaScript es [configuracióndered](docId:_QPNvwgjT-7XggV_L0VNa) (consulte [Guía de migración de BrightScript-JavaScript](docId\:imtBD2LffaORoXierGC2a) para ver los métodos equivalentes).

Creación de objetos: El objeto *roNetworkConfiguration* se crea con un único parámetro.

```text
CreateObject("roNetworkConfiguration", network_interface as Dynamic)
```

El parámetro `network_interface` puede ser cualquiera de los siguientes:&#x20;

- `0` o `"eth0"`: El puerto Ethernet en el reproductor BrightSign
- `"eth1"`: El puerto Ethernet de “control” en reproductores que tienen uno. Tenga en cuenta que el puerto no está habilitado de forma predeterminada y debe habilitarse explícitamente (lo que se puede hacer desde el prompt de shell de BrightSign, JavaScript o BrightScript).
- `1` o `"wlan0"`: El WiFi interno
- `2` o `"ppp0"`: Un módem conectado
- `"usb0"`, `"usb1"`, etc.: Interfaces Ethernet USB

Si la `network_interface` se especifica como un entero, la interfaz debe existir actualmente en el reproductor; de lo contrario, la función de creación de objetos devolverá `Inválido`. Por el contrario, especificar la `network_interface` como una cadena le permite crear una instancia de *roNetworkConfiguration* para una interfaz que actualmente no está presente en el reproductor.

La interfaz de red puede configurarse como una VLAN utilizando el siguiente formato de cadena: `"[parent_interface].[vlan_id]"` (p. ej., `"eth0.42"`). Una vez que se configuran las interfaces VLAN, deben habilitarse en la interfaz de red principal (p. ej., "eth0") usando el método `SetVlanIds()`. Las interfaces VLAN usan DHCP de forma predeterminada. Solo son compatibles con reproductores Series 4 (XTx44, XDx34, HDx24, LS424) y Series 3 (XTx43, XDx33, HDx23, LS423, HO523). Consulte también [Métricas de enrutamiento predeterminadas](docId:0jDtAGrV4AlBWLYFJNj45).

**Ejemplo:**

```text
 n6 = CreateObject("roNetworkConfiguration", "eth0.6")
```

Algunas de las siguientes configuraciones son específicas de la interfaz de red, mientras que otras son utilizadas por el host de BrightSign para todas las interfaces de red.

## ifNetworkConfiguration <font color="#0C121D">(Configuración de la interfaz de red)</font>

<font color="#0C121D">Estas configuraciones se aplican a la interfaz pasada a </font>`CreateObject()`.

### Apply() As Boolean

Aplica los cambios solicitados a la interfaz de red. Este método devuelve `falso` si los cambios no pudieron aplicarse a la interfaz de red, aunque los cambios realizados usando métodos "Set" y "Reset" se conservarán durante futuros reinicios incluso si `Aplicar()` falla. La configuración puede tardar varios segundos en completarse.

:::hint{type="info"}
Los métodos "Set" y "Reset" no surten efecto hasta que se llama a `Aplicar()`.
:::

### SetClientIdentifier(a As String) As Boolean

Establece el identificador del cliente DHCP.&#x20;

### GetClientIdentifier() As String

Devuelve el identificador del cliente DHCP.

### SetInboundShaperRate(rate As Integer) As Boolean

Establece el límite de ancho de banda para el tráfico entrante en bits por segundo y afecta a todo el tráfico en la interfaz de red. Para el límite de ancho de banda predeterminado, pase -1 al método; para ningún límite de ancho de banda, pase 0 (aunque estas dos configuraciones son funcionalmente iguales). Deberá llamar a `Aplicar()` para que esta configuración surta efecto, y cambiar esta configuración en cualquier momento provocará que la interfaz de red se desactive y se reinicialice.

### SetMTU(mtu As Integer) As Boolean

Establece la unidad máxima de transmisión (MTU) para la interfaz de red en bytes. Actualmente, la configuración de MTU no se devuelve cuando se llama al método `GetCurrentConfig()`.

### SetRoutingMetric(a As Integer) As Boolean 

Configura la métrica para la puerta de enlace predeterminada en la interfaz de red actual. Las rutas con métricas más bajas tienen prioridad sobre las rutas con métricas más altas. Esta función devuelve `verdadero` si se ejecuta correctamente.

### SetDHCP() As Boolean (interface)

Habilita DHCP y desactiva todas las demás configuraciones. Esta función devuelve `verdadero` si se ejecuta correctamente.

### SetEnabledProtocols(protocols as roArray) As Boolean

Habilita o deshabilita la compatibilidad con IPv4/IPv6 en una interfaz de red. De forma predeterminada, ambas versiones del protocolo son compatibles, y la configuración de la red local determina qué versión utiliza la interfaz. Este método le permite restringir la compatibilidad a una sola versión de IP.

La matriz pasada a este método puede tener los siguientes valores de cadena: "IPv4" o "IPv6". Si la matriz contiene ambos valores, ambos protocolos serán compatibles; si no contiene ninguno, la interfaz de red se activará pero no proporcionará conectividad.

Este método devuelve `verdadero` si se ejecuta correctamente y `falso` si falla; utilice el método `GetFailureReason()` para obtener más información en caso de error.

**Ejemplo**

```text
 ' Disable IPv6 and leave IPv4 enabled
 n1=CreateObject("roNetworkConfiguration", 1)
 print n1.SetEnabledProtocols(["IPv4"])
 print n1.Apply()
```

### GetEnabledProtocols() As roArray

Devuelve las versiones de IP habilitadas en la interfaz. La matriz puede contener los valores de cadena "IPv4" y "IPv6".

### SetIP4Address(ip As String) As Boolean (interface)

### SetIP4Netmask(netmask As String) As Boolean (interface)

### SetIP4Broadcast(broadcast As String) As Boolean (interface)

### SetIP4Gateway(gateway As String) As Boolean (interface)

Establece la configuración IPv4 de la interfaz. Todos los valores deben especificarse explícitamente. A diferencia del comando shell `ifconfig` , no hay inferencia automática. El parámetro es una cadena decimal punteada de cuatro partes (es decir, "192.168.1.2" o similar). Devuelve `verdadero` si se ejecuta correctamente.

**Ejemplo**

```text
nc = CreateObject("roNetworkConfiguration",0) 
nc.SetIP4Address("192.168.1.42")
nc.SetIP4Netmask("255.255.255.0")
nc.SetIP4Broadcast("192.168.1.255")
nc.SetIP4Gateway("192.168.1.1")
```

### SetVlanIds(vlan\_ids As roArray) As Boolean

Habilita los ID de VLAN especificados (y solo esos ID) en la interfaz de red (las interfaces VLAN deben configurarse primero). Este método acepta una matriz de enteros. 

La interfaz física (`eth0` en el ejemplo) está deshabilitada de forma predeterminada cuando las VLAN están habilitadas. Para usar tanto la interfaz física (es decir, sin etiquetas VLAN) como las VLAN, los usuarios deben especificar un ID de VLAN de cero en la matriz al llamar a `SetVlanIds`.

**Ejemplo**

```text
' Configure the VLANs first. Use defaults for VLAN6.
n6=CreateObject("roNetworkConfiguration", "eth0.6")
print n6.ResetInterfaceSettings()
print n6.Apply()

' Use defaults for VLAN11.
n11=CreateObject("roNetworkConfiguration", "eth0.11")
print n11.ResetInterfaceSettings()
print n11.Apply()

' Use static IP for VLAN15.
n15=CreateObject("roNetworkConfiguration", "eth0.15")
print n15.SetIP4Address("192.168.15.100")
print n15.SetIP4Netmask("255.255.255.0")
print n15.Apply()

' Now enable VLANs 6, 11 and 15 on eth0.
n0=CreateObject("roNetworkConfiguration", "eth0")
print n0.SetVlanIds([6, 11, 15])
print n0.Apply()
```

:::hint{type="info"}
La configuración de VLAN es persistente, incluso cuando VLAN no está habilitada. Si utiliza el método `SetVlanIds()` para eliminar y luego agregar ID de VLAN, volverán con la configuración anterior de forma predeterminada. Puede utilizar el método `ResetInterfaceSettings()` para eliminar cualquier configuración anterior.
:::

### SetWiFiESSID(essid as String) As Boolean

Configura el ESSID WiFi de la red inalámbrica a la que se conectará el reproductor. Este método devuelve `verdadero` si se ejecuta correctamente.

### GetWiFiESSID() As String

Recupera el ESSID WiFi configurado, incluso si el reproductor no está conectado actualmente a esa red inalámbrica. Utilice el valor `GetCurrentConfig().wifi_essid` para recuperar el ESSID de la red inalámbrica a la que el reproductor está conectado actualmente.

### SetWiFiPassphrase(passphrase as String) As Boolean

Configura la frase de contraseña o clave para la red inalámbrica. Este método acepta una frase de contraseña en texto plano. Devuelve `verdadero` si la frase de contraseña se establece correctamente.

### SetWiFiPassphraseAndObfuscate(a As String) As String

Configura la frase de contraseña o clave para la red inalámbrica. Este método acepta una frase de contraseña en texto plano y devuelve el resultado ofuscado. Si no se establece la frase de contraseña, se devuelve una cadena vacía.

### SetObfuscatedWiFiPassphrase(password As String) As Boolean

Configura la frase de contraseña o clave para la red inalámbrica. Este método acepta una frase de contraseña que ha sido ofuscada usando un secreto compartido. Devuelve `verdadero` si la contraseña se configura correctamente.

:::hint{type="info"}
Contacte con [support@brightsign.biz](mailto\:support@brightsign.biz) para obtener más información sobre cómo generar una clave para la ofuscación y almacenarla en el reproductor.
:::

### SetWiFiFrequencies(frequencies As String) As Boolean

Establece frecuencias WiFi válidas en el rango especificado. Admite 2GHz, 5GHz o una lista de frecuencias escritas en MHz("2412 2417"). Devuelve `verdadero` si la frecuencia se configura correctamente.

### SetWiFiAccessPointMode(enable as Boolean) As Boolean

Habilita o deshabilita el modo de punto de acceso WiFi: Pasar `verdadero` a este método indica al reproductor que actúe como un punto de acceso inalámbrico, que utiliza el ESSID y la frase de contraseña configurados con los métodos `SetWiFiESSID()` y `SetWiFiPassphrase()` (o `SetObfuscatedWiFiPassphrase()`). Si se ha configurado una frase de contraseña, el punto de acceso inalámbrico utilizará autenticación WPA2; de lo contrario, no utilizará autenticación. Este método devuelve `verdadero` en caso de éxito y `falso` en caso de error; use el método `GetFailureReason()` para obtener más información en caso de error.

El modo de punto de acceso WiFi debe utilizarse solo para configuración. Ofrece un servidor DHCP mínimo, pero no proporciona servidores DNS ni enrutamiento a Ethernet. Recomendamos asignar una dirección IP estática a la interfaz inalámbrica, aunque esto no es impuesto por el firmware.

### SetWiFiAccessPointHidden(BOOL hidden)

Si hidden es true, el SSID queda oculto; si es false, será visible. El valor predeterminado es no oculto, que era el comportamiento anterior.

:::hint{type="info"}
El modo de punto de acceso WiFi no está disponible en Series 2 (4Kx42, XDx32, HDx22) ni en modelos anteriores.
:::

### SetWiFiAccessPointFrequencyMHz(frequency As Integer) As Boolean

Establece la [frecuencia](https://en.wikipedia.org/wiki/List_of_WLAN_channels) del punto de acceso inalámbrico (en MHz). Este método devuelve `verdadero` en caso de éxito y `falso` en caso de error; use el método `GetFailureReason()` para obtener más información en caso de error.

:::hint{type="info"}
Los siguientes métodos `ConfigurarWifi*` se utilizan para configurar WPA Enterprise con EAP-TLS.
:::

### SetWiFiIdentity(identity As String) As Boolean

Establece la identidad RADIUS. En el modo EAP-TLS, la identidad se obtendrá del certificado del cliente si no se llama a este método (se utilizará "subjectAltName" si está presente; de lo contrario, se utiliza "commonName"). En el modo EAP-PEAP/MSCHAP, se debe llamar a este método para establecer la identidad.

### SetWiFiEapTlsOptions(options As String) As Boolean

Establece opciones específicas de EAP. Actualmente, este método puede utilizarse para habilitar o deshabilitar la compatibilidad con MD5 ("md5=enable" o "md5=disable") y para establecer una identidad anónima para configuraciones EAP-PEAP/MSCHAP ("anonymous\_identity=anon\@brightsign.biz"). Se pueden establecer múltiples parámetros con una lista separada por espacios. Para borrar configuraciones anteriores, pase una cadena vacía a este método.

### SetWiFiCACertificates(certificates As Dynamic) As Boolean

Establece el archivo de certificado CA para EAP-TLS (los certificados también pueden enviarse desde un peer EAP). Los datos del certificado pueden especificarse como un *roByteArray* de datos Base64 (para formatos de archivo *.cer*, *.pfx* o *.p12* ) o un *roString* (para el formato de archivo *.pem* ). Los formatos binarios compatibles son ASN.1 DER (para certificados y claves separados) y PKCS#12 (para un único archivo que puede contener tanto certificados como claves). El formato de texto compatible es PEM.&#x20;

### SetWiFiClientCertificate(certificate As Dynamic) As Boolean

Establece el certificado de cliente para EAP-TLS. Los datos del certificado pueden especificarse como un *roByteArray* de datos Base64 o un *roString*.

### SetWiFiPrivateKey(key As Dynamic) As Boolean

Establece la clave privada para autenticación. Los datos del certificado pueden especificarse como un *roByteArray* de datos Base64 o un *roString.* Si la clave privada está protegida por contraseña, use el método `SetWiFiPassphrase()` para establecer la contraseña.

:::hint{type="info"}
Si el certificado de cliente y la clave privada asociada están en el mismo archivo PKCS#12, el contenido del archivo debe especificarse usando el método `SetWiFiPrivateKey()` y el valor de `SetWiFiClientCertificate()` debe dejarse vacío.
:::

### SetWiFiSecurityMode(mode As String) As Boolean

Establece el método de cifrado WiFi. De forma predeterminada, se permiten tanto el cifrado WPA (TKIP) como WPA2 (CCMP). Este método acepta una lista separada por espacios, sin distinción entre mayúsculas y minúsculas, que puede incluir valores "tkip" o "ccmp". Pasar una cadena vacía establece el modo predeterminado. Si se permiten tanto CCMP como TKIP, CCMP siempre tiene prioridad.

### ConfigureDHCPServer(config As roAssociativeArray) As Boolean

Configura un servidor DHCP en el puerto Ethernet o en el punto de acceso inalámbrico. Este método acepta un array asociativo con los siguientes parámetros:

- `ip4_start` <font color="#6B21A8">string</font> <font color="#14B8A6">required</font>: El inicio del rango de direcciones IP ofrecidas
- `ip4_end` <font color="#6B21A8">string</font> <font color="#14B8A6">required</font>: El final del rango de direcciones IP ofrecidas
- `name_servers` <font color="#6B21A8">roArray</font>: Un array de cadenas que contiene las direcciones IPv4 de los servidores de nombres (las direcciones IPv6 actualmente no son compatibles)
- `dominio` <font color="#6B21A8">string</font>: El sufijo de dominio que usarán los clientes
- `ip4_gateway` <font color="#6B21A8">string</font>: La dirección IPv4 de la puerta de enlace que usarán los clientes

Para deshabilitar el servidor DHCP, pase un array asociativo vacío (`{}`) a este método. Este método devuelve `verdadero` en caso de éxito y `falso` en caso de error; use el método `GetFailureReason()` para obtener información en caso de error.

:::hint{type="success"}
La información de arrendamiento DHCP puede verse accediendo a cualquiera de las siguientes direcciones IP mediante un navegador web en la red local: `http://<brightsign-ip>/dhcp-server.html` o `http://<brightsign-ip>/dhcp-server.txt`
:::

### SetDomain(domain As String) As Boolean (host)

Establece el nombre de dominio del dispositivo. Este se añadirá a los nombres para calificarlos completamente, aunque no es necesario llamar a este método. Este método devuelve `verdadero` en caso de éxito.

**Ejemplo**

```text
nc.SetDomain("brightsign.biz")
```

### SetDNSServers(servers As roArray) As Boolean (host)

Establece la lista de servidores DNS si no había servidores DNS cuando se creó el objeto. Este método acepta un array de cadenas, cada una de las cuales contiene la dirección IP en formato dotted-quad de un servidor DNS, y devuelve `verdadero` en caso de éxito. Actualmente hay un máximo de tres servidores; el método devolverá `falso` si intenta añadir más de tres servidores.

:::hint{type="success"}
Para borrar la lista de servidores DNS, llame a `SetDNSServers([])`.
:::

### AddDNSServer(server As String) As Boolean (host)

Añade otro servidor DNS a la lista si no había servidores DNS cuando se creó el objeto. Este método acepta la dirección IP en formato dotted-quad de un servidor DNS como una cadena y devuelve `verdadero` en caso de éxito. Actualmente hay un máximo de tres servidores; el método devolverá `falso` si intenta añadir más de tres servidores.&#x20;

### EnableLEDs(enable As Boolean) As Boolean

Habilita o deshabilita el LED de actividad Ethernet (es decir, el parpadeo durante el comportamiento de enlace y actividad). El LED Ethernet está habilitado de forma predeterminada. Los cambios en esta configuración no persisten tras reiniciar. Este método devuelve `verdadero` en caso de éxito y `falso` en caso de error. Tenga en cuenta que este método no está disponible en los modelos HDx10, HDx20 y LSx22.

### ResetInterfaceSettings() As Boolean

Borra todas las configuraciones específicas de la interfaz (por ejemplo, la dirección IP y la puerta de enlace predeterminada). Este método es ideal para restablecer una interfaz a un estado vacío conocido antes de configurar ajustes específicos.

### GetFailureReason() As String

Devuelve información adicional cuando una función miembro devuelve `falso`.

### TestInterface() As Object

Realiza varias pruebas en la interfaz de red para determinar si parece estar funcionando correctamente. Informa los resultados mediante un array asociativo que contiene los siguientes miembros:

| **Valor** | **Tipo**             | **Descripción**                                                                                                    |
| --------- | -------------------- | ------------------------------------------------------------------------------------------------------------------ |
| ok        | Boolean              | Este valor es `verdadero` si las pruebas no encuentran problemas, o `falso` si se identificó al menos un problema. |
| diagnosis | String               | Un diagnóstico de una sola línea del primer problema identificado en la interfaz de red.                           |
| log       | *roArray* de cadenas | Un registro completo de todas las pruebas realizadas y sus resultados.                                             |

### SetDialupInitString(cmds As String) As Boolean

Especifique la cadena de inicialización, si corresponde, requerida para configurar el módem celular instalado para operación de datos. Normalmente tendría la forma `AT+CGDCONT=1,"IP","myapn"` donde `myapn` es la cadena APN especificada por el operador de red. Consulte a su proveedor de módem y operador de red para obtener orientación adicional.

### SetDialupNumber(number As String) As Boolean

Especifique el número de teléfono que debe “marcarse” para establecer una conexión de datos a través de la interfaz celular, normalmente `*99#`. Consulte a su proveedor de módem para obtener orientación adicional.

### SetDialupUser(user As String) As Boolean

### SetDialupPassword(password As String) As Boolean

Especifique las credenciales PAP/CHAP, si corresponde, requeridas para establecer una conexión de datos celular. En la mayoría de los casos no son necesarias. Consulte a su operador de red para obtener orientación.

## <font color="#0C121D">ifNetworkConfiguration (Configuración del host)</font>

<font color="#0C121D">Estas configuraciones se aplican globalmente sin importar qué interfaz se haya pasado a </font>`CreateObject()`.

### SetupDWS(settings As roAssociativeArray) As Boolean

Configura el Diagnostic Web Server (DWS). Este método devuelve `verdadero` si se requiere un reinicio para que los cambios surtan efecto. Devolverá `falso` si no se requiere un reinicio o si el método falló; el método `GetFailureReason()` devuelve una cadena no vacía en caso de fallo.

<font color="#303030">El Local DWS (LDWS) está deshabilitado de forma predeterminada en BOS 9.0.218 en la rama 9.0, y en BOS 9.1.75 en la rama 9.1. </font><font color="#303030">Para habilitar el LDWS, consulte . En versiones anteriores de BOS, el LDWS está habilitado de forma predeterminada</font> en el puerto 80, con el número de serie del reproductor como contraseña. Las configuraciones para el LD<font color="#303030">WS se especifican en un arreglo asociativo. Estas propiedades se escriben en el registro y persisten después del reinicio:</font>

- `puerto`: El número de puerto del LDWS, ubicado en la dirección IP del reproductor. Configurar este valor en 0 deshabilitará el LDWS, mientras que configurarlo en "default" hará que el LDWS sea accesible en el puerto predeterminado (80). 
- `contraseña`: Una contraseña ofuscada para el LDWS. Este método utiliza autenticación de acceso digest. Especificar este parámetro sin configurar un número de `puerto` hará que el LDWS sea accesible en el puerto predeterminado.
- `abrir`: Una contraseña no ofuscada para el LDWS. Este método utiliza autenticación de acceso digest. El puerto predeterminado es 80.  Especificar este parámetro sin configurar un número de `puerto` hará que el LDWS sea accesible en el puerto predeterminado. Especificar este parámetro en el arreglo asociativo con una cadena vacía equivale a habilitar el LDWS sin protección por contraseña.
- `básico`: Un indicador que señala si se debe usar autenticación básica o no. Establecer este parámetro en `verdadero` permite validar la contraseña establecida con el parámetro `abrir` mediante autenticación básica, en lugar de autenticación de acceso digest. Esta opción permite compatibilidad con versiones anteriores en plataformas antiguas; la mayoría, si no todos, los navegadores modernos requieren que la autenticación básica esté deshabilitada para comunicarse con el LDWS.

El nombre de usuario es "admin" para todas las configuraciones de autenticación.

### GetRecoveryUrl() As String

Devuelve la URL de recuperación actual, que se almacena en la entrada "ru" de la [sección del registro](docId\:ZkG2it0MwZHIyUgEuPuIb). Si la URL de recuperación se establece mediante la opción 43 de DHCP, tendrá prioridad sobre la entrada de registro "ru".

### FlushDNSCache()

Vacía la caché DNS del reproductor. Este método está disponible en BrightSign OS 8.3.32 y versiones posteriores. Tenga en cuenta que ciertos objetos (como roUrlTransfer) pueden continuar usando los resultados antiguos durante un breve período después de la versión OS 8.3.32.

Para usar este método:

```text
nc = CreateObject("roNetworkConfiguration", 0)
if not nc.FlushDNSCache() then
  print "Flush DNS cache failed: "; nc.GetFailureReason()
end if
```

### ResetHostSettings() As Boolean

Borra todas las configuraciones del host (es decir, configuraciones que no tienen en cuenta el número de interfaz y que no afectan la interfaz de red especificada; por ejemplo, el servidor de hora).&#x20;

### SetLoginPassword(password As String) As Boolean

Especifica una contraseña de inicio de sesión para la conexión SSH (si SSH se ha habilitado en el registro). Este método acepta una contraseña en texto plano.

:::hint{type="info"}
Cuando un cliente SSH reciente intenta conectarse al SSHD en un reproductor BrightSign, la conexión debe especificar los algoritmos de clave de host que se probarán; de lo contrario, el reproductor no encontrará un algoritmo compatible.
“ssh -o HostKeyAlgorithms=ssh-rsa,ssh-dss  brightsign\@172.22.200.74” ofrece una lista de posibles claves de host.
:::

### SetObfuscatedLoginPassword(password As String) As Boolean

Especifica una contraseña de inicio de sesión para la conexión SSH (si SSH se ha habilitado en el registro). Este método acepta una contraseña que ha sido ofuscada usando un secreto compartido.

:::hint{type="info"}
Póngase en contacto con [support@brightsign.biz](mailto\:support@brightsign.biz) para obtener más información sobre cómo generar una clave para la ofuscación y almacenarla en el reproductor.
:::

### SetForwardingPolicy(parameters As roAssociativeArray) As Boolean

Configura la política de reenvío global del host (este método se aplica a todas las interfaces de red, sin importar en qué instancia de *roNetworkConfiguration* se llame). El valor de retorno es `verdadero` en caso de éxito o `falso` en caso de error. Este método acepta un arreglo asociativo con los siguientes parámetros:&#x20;

- `forwarding_enabled` <font color="#6B21A8">boolean</font>: (Obligatorio) Un indicador que habilita o deshabilita el reenvío IP. `Reenvío_activado` debe especificarse como `verdadero` o `falso`. Si `forwarding_enabled` es `falso`, no se realiza ningún reenvío IP. Este es el valor predeterminado y coincide con el comportamiento anterior. &#x20;
- `nat_enabled` <font color="#6B21A8">boolean</font>: (Obligatorio) Un indicador que habilita o deshabilita la traducción de direcciones con reenvío IP. Si `forwarding_enabled` es `verdadero`, `nat_enabled` debe especificarse como `verdadero` o `falso`.&#x20;
  - Si `forwarding_enabled` es `verdadero` y `nat_enabled` es `falso`, los datagramas IP se reenvían entre todas las interfaces y no se realiza ninguna traducción de direcciones.&#x20;
  - Si `forwarding_enabled` es `verdadero` y `nat_enabled` es `verdadero`, los datagramas IP se reenvían entre todas las interfaces, pero SNAT se aplica a cualquier datagrama que se envíe fuera de una interfaz "upstream". Para este propósito, una interfaz "upstream" es cualquiera en la que se establece una ruta predeterminada. Tenga en cuenta que puede haber más de una interfaz de este tipo. Los datagramas destinados a una interfaz que no tiene una ruta predeterminada se reenvían sin NAT.&#x20;
- Tenga en cuenta que la política de reenvío es una configuración de todo el host y no hace ninguna diferencia qué interfaz se seleccionó cuando el objeto *roNetworkConfiguration* fue creado. 

### SetTimeServer(time\_server As String) As Boolean (host)

Establece el servidor de hora predeterminado, que es "time.brightsignnetwork.com". Puede deshabilitar el uso de NTP llamando a `SetTimeServer("")`. Puede usar la sintaxis de URL para especificar que el reproductor use un servidor HTTP o HTTPS para sincronizar el reloj. Las siguientes son direcciones válidas de servidores de hora:

- http\://time.brightsignnetwork.com/
- https\://time.brightsignnetwork.com/
- ntp\://time.brightsignnetwork.com/
- time.brightsignnetwork.com

:::hint{type="info"}
Las dos últimas direcciones son equivalentes.
:::

### GetTimeServer() As String

Recupera el servidor de hora (host) actualmente en uso.

### SetTimeServerIntervalSeconds(interval\_in\_seconds As Integer) As Boolean

Especifica con qué frecuencia el reproductor debe comunicarse con el servidor de hora y ajustar su reloj. El intervalo predeterminado es de 12 horas; pasar un valor de 0 especifica el intervalo predeterminado. El intervalo mínimo permitido es de 120 segundos.

### GetTimeServerIntervalSeconds() As Integer

Devuelve el intervalo actual para la renovación del servidor de hora (en segundos).

### SetHostName(name as String) As Boolean (host)

Establece el nombre de host del dispositivo. Si no se ha establecido explícitamente ningún nombre de host, entonces se genera automáticamente un nombre de host basado en el número de serie del dispositivo. Pasar una cadena vacía a este método restablece el nombre de host del dispositivo a su valor generado automáticamente.

### GetHostName() As String (host)

Recupera el nombre de host actualmente en uso.

### SetProxy(proxy as String) As Boolean (host)

Establece el nombre o la dirección del servidor proxy utilizado para solicitudes HTTP, HTTPS y FTP. La cadena del proxy debe tener el formato "http\://user\:password\@hostname\:port". El hostname puede contener hasta cuatro caracteres "\*"; cada carácter "\*" puede utilizarse para reemplazar un octeto de la dirección IP actual. Por ejemplo, si la dirección IP es actualmente 192.168.1.2 y el proxy está configurado como "proxy-\*-\*", entonces el reproductor intentará usar un proxy llamado "proxy-192.168".

Los siguientes caracteres deben codificarse con porcentaje para el nombre de usuario y la contraseña:

|     |     |
| --- | --- |
| SPC | %20 |
| "   | %22 |
| #   | %23 |
| %   | %25 |
| /   | %2F |
| \<  | %3C |
| >   | %3E |
| ?   | %3F |
| @   | %40 |
| \[  | %5B |
| \\  | %5C |
| ]   | %5D |
| ^   | %5E |
| \`  | %60 |
| \{  | %7B |
| \|  | %7C |
| }   | %7D |

### GetProxy() As String (host)

Devuelve el nombre o la dirección del servidor proxy.

### SetProxyBypass(hostnames As Array) As Boolean

Exime a los hosts especificados de la configuración del proxy. El array pasado debe constar de uno o más nombres de host. El reproductor intentará acceder a los hosts especificados directamente en lugar de usar el proxy que se ha especificado con el método `SetProxy()` . Por ejemplo, el nombre de host "http\://example.com " eximiría a "http\://example.com ", "http\://example.com:80 " y "http\://www\.example.com " de la configuración del proxy.

### GetProxyBypass() As roArray

Devuelve un array de nombres de host que se han eximido de la configuración de proxy mediante el método `SetProxyBypass()` .

### TestInternetConnectivity() As Object

Realiza varias pruebas en la conexión a Internet (a través de cualquier interfaz de red disponible, no necesariamente la especificada cuando se creó el objeto *roNetworkConfiguration*) para determinar si parece estar funcionando correctamente. Informa los resultados mediante un array asociativo que contiene los siguientes miembros:

| **Valor** | **Tipo**             | **Descripción**                                                                                                    |
| --------- | -------------------- | ------------------------------------------------------------------------------------------------------------------ |
| ok        | Boolean              | Este valor es `verdadero` si las pruebas no encuentran problemas, o `falso` si se identificó al menos un problema. |
| diagnosis | String               | Un diagnóstico en una sola línea del primer problema identificado con la conexión a Internet.                      |
| log       | *roArray* de strings | Un registro completo de todas las pruebas realizadas y sus resultados.                                             |

### <font color="#0C121D">GetSshAuthorizedKeys() as Object </font>

<font color="#0C121D">Disponible a partir de BOS 10.0.11, esto d</font><font color="#0C121D">evuelve un roArray de strings con una string de línea de clave pública autorizada.</font> <font color="#0C121D">Consulte</font> [Formato de clave pública](docId:-GP4o6Du0GIAJTyC8_hl2).

### <font color="#0C121D">SetSshAuthorizedKeys(keys as Object) as Boolean </font>

<font color="#0C121D">Disponible a partir de BOS 10.0.11, esto </font><font color="#0C121D">a</font><font color="#0C121D">cepta un contenedor enumerable (normalmente un roArray) de strings que contienen el conjunto completo de claves públicas autorizadas en las que confiar. Devuelve `verdadero` si tiene éxito o `falso` en caso de error. Si se devuelve `falso` , entonces llamar a `GetFailureReason()` proporcionará más información. El nuevo conjunto de claves públicas tendrá efecto inmediatamente una vez que se llame a `Aplicar()` . </font><font color="#0C121D">Consulte</font> [Formato de clave pública](docId:-GP4o6Du0GIAJTyC8_hl2).

### ResetSshHostKeys() as Boolean

Borra todas las claves de host del servidor SSH. Si el método devuelve `Verdadero` entonces se requiere un reinicio para que el servidor comience a utilizar las nuevas claves. Si el método devuelve `Falso` entonces llame a `GetFailureReason()`. Si eso devuelve una string vacía, entonces la llamada fue exitosa y no se requiere reinicio para que las nuevas claves tengan efecto. Si `GetFailureReason()` devuelve una string no vacía, entonces la llamada falló.

## <font color="#0C121D">ifNetworkConfiguration</font> <font color="#0C121D">(Interfaz de red y configuración de host)</font>

### GetCurrentConfig() As Object

Recupera toda la configuración actual como un arreglo asociativo que contiene los siguientes miembros:

| **Valor**         | **Tipo**             | **Host/Interfaz** | **Descripción**                                                                                                                                                                                                 |
| ----------------- | -------------------- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| metric            | Integer              | Interfaz          | Devuelve la métrica de enrutamiento actual de la interfaz. Consulte la entrada `SetRoutingMetric()` para obtener más detalles.                                                                                  |
| dhcp              | Boolean              | Interfaz          | Devuelve `verdadero` si el sistema está configurado actualmente para usar DHCP. Devuelve `falso` en caso contrario.                                                                                             |
| hostname          | String               | Host              | El nombre de host configurado actualmente                                                                                                                                                                       |
| mdns\_hostname    | String               | Host              | El nombre de host Zeroconf actualmente en uso. Puede ser más largo que el nombre de host si existe una colisión en la red actual.                                                                               |
| ethernet\_mac     | String               | Interfaz          | La dirección MAC de Ethernet                                                                                                                                                                                    |
| ip4\_address      | String               | Interfaz          | La dirección IPv4 actual. Si actualmente no hay ninguna configurada, la cadena estará vacía.                                                                                                                    |
| ip4\_netmask      | String               | Interfaz          | La máscara de red IPv4 actual. Si actualmente no hay ninguna configurada, la cadena estará vacía.                                                                                                               |
| ip4\_broadcast    | String               | Interfaz          | La dirección de broadcast IPv4 actual. Si ninguna está configurada actualmente, la cadena estará vacía.                                                                                                         |
| ip4\_gateway      | String               | Interfaz          | La dirección de gateway IPv4 actual. Si ninguna está configurada actualmente, la cadena estará vacía.                                                                                                           |
| domain            | String               | Host              | Una lista de dominios separados por espacios en blanco que se anexarán a nombres no calificados al resolverlos                                                                                                  |
| domains           | *roArray* de Strings | Host              | Los dominios que se anexarán a nombres no calificados al resolver nombres                                                                                                                                       |
| dns\_servers      | *roArray* de Strings | Host              | Los servidores DNS actualmente activos                                                                                                                                                                          |
| time\_server      | String               | Host              | El servidor de hora actual                                                                                                                                                                                      |
| configured\_proxy | String               | Host              | El proxy configurado actualmente. Este puede contener caracteres mágicos como se explica en `SetProxy()` arriba.                                                                                                |
| current\_proxy    | String               | Host              | El proxy actualmente activo. Cualquier carácter mágico habrá sido reemplazado como se explica en `SetProxy()` arriba.                                                                                           |
| shape\_inbound    | Integer              | Interfaz          | El modelado de ancho de banda actual para el tráfico entrante determinado por el método `SetInboundShaperRate()`.                                                                                               |
| type              | String               | Interfaz          | Ya sea "wired" o "wifi"                                                                                                                                                                                         |
| link              | Boolean              | Interfaz          | Indica si la interfaz de red está conectada actualmente.                                                                                                                                                        |
| wifi\_essid       | String               | Interfaz          | El nombre de la red Wi‑Fi actual (si existe)                                                                                                                                                                    |
| wifi\_signal      | Integer              | Interfaz          | Una indicación de la intensidad de la señal recibida. El valor absoluto de este campo normalmente no es significativo, pero puede compararse con el valor informado en otras redes o en diferentes ubicaciones. |

### GetNeighborInformation() As roAssociativeArray

Recupera información de ubicación de la infraestructura de red mediante el protocolo LLDP-MED. La información se devuelve como un arreglo asociativo de cadenas correspondientes a tipos de direcciones cívicas, que se definen de la siguiente manera según la especificación LLDP-MED: 

| **CAtype** | **Etiqueta** | **Descripción**                                                     |
| ---------- | ------------ | ------------------------------------------------------------------- |
| 1          | A1           | subdivisiones nacionales (estado, región, provincia, prefectura)    |
| 2          | A2           | condado, parroquia, gun(JP), distrito(IN)                           |
| 3          | A3           | ciudad, municipio, shi(JP)                                          |
| 4          | A4           | división de ciudad, municipio, distrito de ciudad, barrio, chou(JP) |
| 5          | A5           | vecindario, bloque                                                  |
| 6          | A6           | calle                                                               |

| **CAtype** | **NENA** | **PIDF** | **Descripción**                                 | **Ejemplos**            |
| ---------- | -------- | -------- | ----------------------------------------------- | ----------------------- |
| 0          |          |          | idioma                                          | i-default \[3]          |
| 16         | PRD      | PRD      | dirección inicial de la calle                   | N                       |
| 17         | POD      | POD      | sufijo final de la calle                        | SW                      |
| 18         | STS      | STS      | sufijo de la calle                              | Ave, Platz              |
| 19         | HNO      | HNO      | número de casa                                  | 123                     |
| 20         | HNS      | HNS      | sufijo del número de casa                       | A, 1/2                  |
| 21         | LMK      | LMK      | punto de referencia o dirección personalizada   | Universidad de Columbia |
| 22         | LOC      | LOC      | información adicional de ubicación              | Ala Sur                 |
| 23         | NAM      | NAM      | nombre (ocupante de la residencia y la oficina) | Barbería de Joe         |
| 24         | ZIP      | PC       | código postal/ZIP                               | 10027-1234              |
| 25         |          |          | edificio (estructura)                           | Low Library             |
| 26         |          |          | unidad (apartamento, suite)                     | Apt 42                  |
| 27         |          | FLR      | piso                                            | 4                       |
| 28         |          |          | número de habitación                            | 450F                    |
| 29         |          |          | tipo de lugar                                   | oficina                 |
| 30         | PCN      |          | nombre de la comunidad postal                   | Leonia                  |
| 31         |          |          | apartado postal (P.O Box)                       | 12345                   |
| 32         |          |          | código adicional                                | 13203000003             |
| 128        |          |          | script                                          | Latn                    |
| 255        |          |          | reservado                                       |                         |



## ifWiFiConfiguration

### ScanWiFi() As roArray

Busca redes inalámbricas disponibles. Los resultados se informan como un *roArray* que contiene uno o más arrays asociativos con los siguientes miembros:

| **Valor** | **Tipo** | **Descripción**                                                                                                                                                                                   |
| --------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| essid     | String   | Nombre de la red                                                                                                                                                                                  |
| bssid     | String   | BSSID del punto de acceso                                                                                                                                                                         |
| signal    | Integer  | Indicación de intensidad de señal recibida. El valor absoluto de este campo normalmente no es relevante, pero puede compararse con el valor informado en otras redes o en diferentes ubicaciones. |

:::hint{type="info"}
ScanWiFi puede fallar si no se ha completado un escaneo anterior, o si hay un escaneo en segundo plano en curso. Este posible fallo debe manejarse en el script, y el script debe reintentar ScanWifi si falla.
:::

### ReassociateWiFi(enable As Boolean) As Boolean

Este método no toma parámetros e intenta desconectarse y reconectarse a la red WiFi configurada actualmente. Normalmente esto no debería ser necesario, pero podría resultar útil al diagnosticar problemas de red. Devuelve `verdadero` en caso de éxito o `falso` en caso de fallo. Cuando se devuelve `falso` llamar a `GetFailureReason()` puede proporcionar más información sobre el motivo.

Este método está presente en BOS 8.4.20 y versiones posteriores, BOS 8.5.26 y versiones posteriores, y en todas las versiones de BOS 9.0.

Tenga en cuenta que esta función puede devolver el control antes de que la red se haya reconectado. Use `roNetworkHotplug` para determinar cuándo se completa la reconexión.

## Autenticación de red

Los reproductores BrightSign admiten los formatos de cifrado inalámbrico más utilizados: WEP (64 y 128), WPA (TKIP) y WPA2 (AES).

WPA Enterprise es compatible con EAP-TLS (con certificados DER, PEM o PKCS#12) y PEAPv0/MSCHAPv2 (con un nombre de usuario y una frase de contraseña). También se admite la autenticación cableada mediante 802.1x. Las instrucciones de configuración a continuación se aplican tanto a la autenticación WiFi como a la autenticación cableada mediante 802.1x; la única diferencia es el parámetro cableado/inalámbrico (0/1) pasado durante la inicialización de *roNetworkConfiguration* .

### EAP-TLS

La autenticación EAP-TLS requiere un certificado de cliente y una clave privada. Hay dos formas de lograrlo:

- Empaquetar el certificado de cliente y la clave privada en un solo archivo en formato PKCS#12 (usando codificación PEM o DER), normalmente con una extensión de archivo *.p12* . Para hacerlo, configure el archivo PKCS#12 usando el método `SetWiFiPrivateKey()` y pase una cadena vacía al método `SetWiFiClientCertificate()` .
- Empaquetar el certificado de cliente como un certificado X.509 (usando codificación PEM o DER) y, opcionalmente, proteger la clave con una frase de contraseña (en lugar de la frase de contraseña WiFi habitual). Para hacerlo, configure el certificado de cliente usando el método `SetWiFiClientCertificate()` y la clave usando el método `SetWiFiPrivateKey()` . Si la clave está protegida con una frase de contraseña, entonces debe llamar a `SetWiFiPassphrase()`.

Las claves de certificados pueden contener datos binarios si no tienen formato PEM. En este caso, deben proporcionarse como un objeto *roByteArray* . Los formatos de texto pueden pasarse usando una cadena o *roByteArray*.

**Ejemplo: Configuración de EAP-TLS con un archivo .p12**

```text
nc = CreateObject("roNetworkConfiguration",1)
 
p12 = CreateObject("roByteArray")
p12.ReadFile("client.p12")

nc.SetWiFiClientCertificate("")
nc.SetWiFiPrivateKey(p12)
nc.SetWiFiPassphrase("passwordgoeshere") 
```

Durante la autenticación, se pasa una identidad al servidor Radius. De forma predeterminada, la identidad se tomará del certificado del cliente. Si el certificado tiene un "subjectAltName", se utilizará; de lo contrario, se utiliza el "CommonName". Si ninguno de estos es correcto, la identidad puede sobrescribirse. Este comportamiento predeterminado puede sobrescribirse llamando a `SetWiFiIdentity()`, o puede especificarse pasando una cadena vacía a `SetWiFiIdentity()`.

### PEAP/MSCHAP

Este modo requiere una identidad (nombre de usuario) y contraseña, en lugar de un certificado de cliente. También puede haber una segunda identidad "externa"; consulte la sección Casos especiales a continuación para obtener detalles de configuración.

```text
nc = CreateObject("roNetworkConfiguration",1)
nc.SetWiFiIdentity("user@brightsign-example.com")
nc.SetWifiPassphrase("passwordgoeshere")
```

### Variantes comunes

### Certificados adicionales

A menudo se requieren certificados CA adicionales cuando se utiliza una CA privada o interna para la autenticación. Además, algunas jerarquías de CA requieren certificados intermedios, que a veces se suministran mediante EAP. Si el servidor no los suministra, pueden añadirse al archivo CA usando el método `SetWiFiCACertififcates()` . Este método admite certificados PEM.

:::hint{type="info"}
Si no se proporciona una CA, no se realizará ninguna verificación de pares y se producirá una autenticación/conexión no validada.
:::

```text
nc = CreateObject("roNetworkConfiguration",1)
ca = CreateObject("roByteArray")
ca.ReadFile("ca.pem")
nc.SetWiFiCACertificates(ca)
```

### Contraseña WiFi ofuscada

Si se requiere una contraseña WiFi ofuscada, puede sustituir el método `SetObfuscatedWiFiPassphrase()` por el método `SetWiFiPassphrase()` . Comuníquese con [support@brightsign.biz](mailto\:support@brightsign.biz) para obtener más información sobre cómo generar una clave para la ofuscación y almacenarla en el reproductor.

### Cifrado TKIP/CCMP

De forma predeterminada, se permite tanto el cifrado WPA (TKIP) como WPA2 (CCMP). Puede modificar este comportamiento utilizando el método `SetSecurityMode()` , que acepta una lista separada por espacios y no sensible a mayúsculas/minúsculas de modos permitidos ("ccmp" y "tkip"). Si se permiten tanto CCMP como TKIP, CCMP siempre tiene prioridad.

```text
nc = CreateObject("roNetworkConfiguration",1)
nc.SetWiFiSecurityMode("") 'Sets the default mode
nc.SetWiFiSecurityMode("ccmp tkip") 'Explicitly allows both modes (same as the default mode)
nc.SetWiFiSecurityMode("ccmp") 'Requires the use of CCMP
```

### Casos especiales

### Compatibilidad con MD5

La compatibilidad con MD5 está habilitada de forma predeterminada por razones de compatibilidad con versiones anteriores. Este comportamiento puede modificarse pasando la cadena "md5=enable" o "md5=disable" al método `SetWiFiEapTlsOptions()` .

```text
nc = CreateObject("roNetworkConfiguration",1)
nc.SetWiFiEapTlsOptions("md5=disable")
```

### Identidad anónima

Algunas configuraciones de EAP-PEAP/MSCHAP requieren una identidad anónima. De forma predeterminada, el reproductor BrightSign utiliza la misma identidad interna y externa. Se puede configurar una identidad anónima con el método `SetWiFiEaptTlsOptions()` :

```text
nc = CreateObject("roNetworkConfiguration",1)
nc.SetWiFiEapTlsOptions("anonymous_identity=anon@brightsign.biz")
```

:::hint{type="success"}
Si no se están utilizando opciones de MD5 ni de identidad, la configuración debe borrarse pasando una cadena vacía al método `SetWiFiEaptTlsOptions()` .
:::

### Fechas de validez

Las fechas de validez son necesarias tanto para EAP-TLS como para PEAP/MSCHAP. Se requiere la hora actual para verificar el certificado. Si el reloj del reproductor no se ha configurado, normalmente establecerá la hora usando la red, pero esto primero requiere autenticación EAP. Para evitar este problema, hay dos excepciones especiales:

- EAP-TLS: Cuando el reloj no está configurado, la hora se establece diez segundos después de que el certificado del cliente entra en vigor, lo que normalmente es suficiente para autenticarse (aunque esto puede no ser suficiente para servidores con certificados más nuevos que el cliente). 
- PEAP/MSCHAP: No hay certificado de cliente y la hora del certificado del servidor no se verifica cuando la fecha no está configurada.

El reloj también puede configurarse mediante el [Servidor web de diagnóstico (DWS)](docId\:qXt4YHey7IEj_M9dH73wM), lo que evita que se utilice cualquiera de las excepciones anteriores. Normalmente, el reloj también se configura desde la red una vez que está disponible, por lo que estas excepciones solo se utilizan en el primer arranque o cuando la batería del reloj se ha agotado completamente.

## Ejemplos

El siguiente script deshabilita la configuración de WPA Enterprise (que de otro modo es persistente):

```text
nc = CreateObject("roNetworkConfiguration", 1)
nc.SetWiFiSecurityMode("")
nc.SetWiFiESSID("")
nc.SetWiFiIdentity("")
nc.SetWiFiCaCertificates("")
nc.SetWiFiClientCertificate("")
nc.SetWiFiPrivateKey("")
nc.SetWiFiPassphrase("")
nc.SetWiFiEapTlsOptions("")
ok = nc.Apply()
```

El siguiente script configura el WiFi para EAP-TLS usando un archivo PKCS#12 (*.p12*), sin certificados de CA adicionales:

```text
essid = "brightwifi"
pkcs12file = "client.p12"
pkcspass = "passwordgoeshere"

nc = CreateObject("roNetworkConfiguration", 1)
nc.SetWiFiESSID(essid)

p12 = CreateObject("roByteArray")
ok = p12.ReadFile(pkcs12file)

if ok then
    nc.SetWiFiClientCertificate("")
    nc.SetWiFiPrivateKey(p12)
    nc.SetWiFiPassphrase(pkcspass)

    nc.SetWiFiCaCertificates("")
    nc.SetWiFiSecurityMode("")
    nc.SetWiFiIdentity("")
    nc.SetWiFiEapTlsOptions("")

    ok = nc.Apply()
end if
```

El siguiente script configura el WiFi para EAP-TLS con certificados adicionales:

```text
essid = "brightwifi"
cafile = "cacert.pem"
pkcs12file = "client.p12"
pkcspass = "passwordgoeshere"

nc = CreateObject("roNetworkConfiguration", 1)
nc.SetWiFiESSID(essid)

p12 = CreateObject("roByteArray")
ok = p12.ReadFile(pkcs12file)

ca = CreateObject("roByteArray")
ok = ca.ReadFile(cafile) and ok

if ok then
    nc.SetWiFiClientCertificate("")
    nc.SetWiFiPrivateKey(p12)
    nc.SetWiFiPassphrase(pkcspass)

    nc.SetWiFiCaCertificates("")
    nc.SetWiFiSecurityMode("")
    nc.SetWiFiIdentity("")
    nc.SetWiFiEapTlsOptions("")

    ok = nc.Apply()
end if
```

El siguiente script configura el WiFi para PEAP/MSCHAP con archivos de CA adicionales:

```text
essid = "brightwifi"
cafile = "ca.pem"
user = "someuser@brightsign.biz"
pass = "whatever"
ca = CreateObject("roByteArray")
ok = ca.ReadFile(cafile)

if ok then
    nc = CreateObject("roNetworkConfiguration", 1)
    nc.SetWiFiESSID(essid)
    nc.SetWiFiIdentity(user)
    nc.SetWiFiPassphrase(pass)
    nc.SetWiFiCaCertificates(ca)
    nc.SetWiFiClientCertificate("")
    nc.SetWiFiPrivateKey("")
    'Use this if an anonymous outer identity is required
    'nc.SetWiFiEapTlsOptions("anonymous_identity=anon@brightsign.biz")
    nc.SetWiFiEapTlsOptions("")

    ok = nc.Apply()
    if not ok then
        fail = "Unable to set configuration: " + nc.GetFailureReason()
    end if
else
    fail = "Unable to read file " + cafile
end if

' if not ok, do something with the failure message
```

El siguiente script realiza varias configuraciones de VLAN en la interfaz Ethernet:

```text
' Configure the VLANs first. Use defaults for VLAN6
n6=CreateObject("roNetworkConfiguration", "eth0.6")
print n6.ResetInterfaceSettings()
print n6.Apply()

' Use defaults for VLAN11
n11=CreateObject("roNetworkConfiguration", "eth0.11")
print n11.ResetInterfaceSettings()
print n11.Apply()

' Use static IP for VLAN15
n15=CreateObject("roNetworkConfiguration", "eth0.15")
print n15.SetIP4Address("192.168.15.100")
print n15.SetIP4Netmask("255.255.255.0")
print n15.Apply()

' Now enable VLANs 6, 11 and 15 on eth0.
n0=CreateObject("roNetworkConfiguration", "eth0")
print n0.SetVlanIds([6, 11, 15])
print n0.Apply()
```

