roNetworkConfiguration
Este objeto proporciona varios métodos para configurar las interfaces de red en un reproductor BrightSign. El equivalente en JavaScript es configuracióndered (consulte Guía de migración de BrightScript-JavaScriptGuía de migración de BrightScript-JavaScript para ver los métodos equivalentes).
Creación de objetos: El objeto roNetworkConfiguration se crea con un único parámetro.
CreateObject("roNetworkConfiguration", network_interface as Dynamic)El parámetro network_interface puede ser cualquiera de los siguientes:
- 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.
Ejemplo:
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 (Configuración de la interfaz de red)
Estas configuraciones se aplican a la interfaz pasada a 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.
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.
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
' 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
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
' 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()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.
Contacte con [email protected] 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.
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 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.
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 ("[email protected]"). 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.
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.
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 string required: El inicio del rango de direcciones IP ofrecidas
- ip4_end string required: El final del rango de direcciones IP ofrecidas
- name_servers roArray: Un array de cadenas que contiene las direcciones IPv4 de los servidores de nombres (las direcciones IPv6 actualmente no son compatibles)
- dominio string: El sufijo de dominio que usarán los clientes
- ip4_gateway string: 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.
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
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.
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.
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.
ifNetworkConfiguration (Configuración del host)
Estas configuraciones se aplican globalmente sin importar qué interfaz se haya pasado a 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.
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. Para habilitar el LDWS, consulte DWS: Acceso local. En versiones anteriores de BOS, el LDWS está habilitado de forma predeterminada en el puerto 80, con el número de serie del reproductor como contraseña. Las configuraciones para el LDWS se especifican en un arreglo asociativo. Estas propiedades se escriben en el registro y persisten después del reinicio:
- 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 registrosección del registro. 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:
nc = CreateObject("roNetworkConfiguration", 0)
if not nc.FlushDNSCache() then
print "Flush DNS cache failed: "; nc.GetFailureReason()
end ifResetHostSettings() 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).
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.
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 [email protected]” 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.
Póngase en contacto con [email protected] 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:
- forwarding_enabled boolean: (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.
- nat_enabled boolean: (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.
- 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.
- 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.
- 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
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. |
GetSshAuthorizedKeys() as Object
Disponible a partir de BOS 10.0.11, esto devuelve un roArray de strings con una string de línea de clave pública autorizada. Consulte Formato de clave pública.
SetSshAuthorizedKeys(keys as Object) as Boolean
Disponible a partir de BOS 10.0.11, esto acepta 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() . Consulte Formato de clave pública.
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ó.
ifNetworkConfiguration (Interfaz de red y configuración de host)
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. |
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
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.
nc = CreateObject("roNetworkConfiguration",1)
nc.SetWiFiIdentity("[email protected]")
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.
Si no se proporciona una CA, no se realizará ninguna verificación de pares y se producirá una autenticación/conexión no validada.
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 [email protected] 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.
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 CCMPCasos 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() .
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() :
nc = CreateObject("roNetworkConfiguration",1)
nc.SetWiFiEapTlsOptions("[email protected]")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), 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):
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:
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 ifEl siguiente script configura el WiFi para EAP-TLS con certificados adicionales:
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 ifEl siguiente script configura el WiFi para PEAP/MSCHAP con archivos de CA adicionales:
essid = "brightwifi"
cafile = "ca.pem"
user = "[email protected]"
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("[email protected]")
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 messageEl siguiente script realiza varias configuraciones de VLAN en la interfaz Ethernet:
' 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()