new NetworkUtilities()
Classe com métodos diversos para tratamento de endereços de servidores e redes.
Methods
-
findHosts(ids)
-
Obtém as chaves dos hosts cadastrados que possuam o endereço informado. Também é definido o método de classe NetworkUtilities.findHosts para usos eventuais Prefira instanciar a classe NetworkUtilities e chamar findHosts da instância se utilizar muito este método.
Parameters:
Name Type Description idsstring| Array.<string> Nome ou endereços ip do computador que deve ser localizado. Pode ser informado um único ou um array de identificadores do computador.
Returns:
Array com as chaves dos servidores que possuam o nome ou endereço ip igual ao pesquisado.
- Type
- Array.<number>
Example
var NetworkUtilities = require('@nginstack/engine/lib/net/NetworkUtilities'); // Localiza o engine que está executando este script no cadastro de servidores var hosts = NetworkUtilities.findHosts([server.localHost, server.localAddress]); if (hosts.length === 1){ return hosts[0] } else { if (hosts.length === 0) { throw new Error("Não existe um computador cadastrado com o nome \"" + server.localHost + "\" ou ip \"" + server.localAddress + "\".") } else { throw new Error("Existe mais um computador cadastrado com o nome \"" + server.localHost + "\" ou ip \"" + server.localAddress + "\".") } } -
findNetworks(ids)
-
Obtém as chaves das redes cadastradas que contenham o endereço informado. Pode ser informado o endereço de um computador ou de uma rede. Neste último caso, deve ser utilizada a notação CIDR (ex: 192.168.0.1/24). Também é definido o método de classe NetworkUtilities.findNetworks para usos eventuais Prefira instanciar a classe NetworkUtilities e chamar findNetworks da instância se utilizar muito este método.
Parameters:
Name Type Description idsstring| Array Endereços de uma rede ou endereços ou nomes de um computador. Pode ser informado um único ou um Array de identificadores.
- See:
Returns:
Array com as chaves das redes que contém o endereço informado.
- Type
- Array
-
findServices(ids, serviceClass, port)
-
Obtém as chaves dos serviços cadastrados na classe Services que estejam associados ao host informado. Serão retornados as chaves de todos serviços dos servidores cujo nome ou endereço IP seja igual ao informado em host. Também é definido o método de classe NetworkUtilities.findServices para usos eventuais Prefira instanciar a classe NetworkUtilities e chamar findServices da instância se utilizar muito este método.
Parameters:
Name Type Description idsstring| Array.<string> Nome ou endereços ip do computador. Pode ser informado um único ou um array de identificadores do computador.
serviceClassnumber Classe do serviço desejado
portnumber Porta do serviço. Parâmetro opcional para restringir a pesquisa para serviços configurados na porta informada. É útil apenas quando existe mais de um serviço de mesma classe configurado em um host.
- See:
Returns:
Array com as chaves dos serviços localizados
- Type
- Array
Example
var NetworkUtilities = require('@nginstack/engine/lib/net/NetworkUtilities'); // Descobre os servidores SMTP configurados no engine que está executando este script var services = NetworkUtilities.findServices( [ server.localHost, server.localAddress ], -1898146235) // SMTP if ( services.length == 0 ){ throw new Error("Não existe um serviço SMTP cadastrado no computador com o " + "nome \"" + server.localHost + "\" ou ip \"" + server.localAddress + "\".") } -
<static> addressInNetworkRange(address, network)
-
Determina se o endereço faz parte da rede informada. A rede deve ser informada na notação CIDR. Sem a máscara, é verificado se os endereços são iguais. São suportados endereços IPv4 e IPv6, inclusive as diferentes representações textuais de um mesmo IPv6. Um IPv4 mapeado em IPv6, como "::ffff:10.0.0.1", é comparado como IPv4 com as redes IPv4.
Parameters:
Name Type Description addressstring Endereço que deve ser avaliado se está na rede informada.
networkstring Endereço da rede
Throws:
-
Se o endereço ou a rede não forem endereços IP válidos.
- Type
- Error
Returns:
True se o endereço faz parte da rede informada
- Type
- boolean
Example
NetworkUtilities.addressInNetworkRange('192.168.0.1', '192.168.0.0/16'); // => true NetworkUtilities.addressInNetworkRange('2001:db8::5', '2001:db8::/32'); // => true NetworkUtilities.addressInNetworkRange('2001:DB8:0::5', '2001:db8::5'); // => true NetworkUtilities.addressInNetworkRange('::ffff:10.0.0.1', '10.0.0.0/8'); // => true NetworkUtilities.addressInNetworkRange('2001:db8::5', '10.0.0.0/8'); // => false -
-
<static> addressToNumber(address)
-
Converte um IPv4 em uma representação numérica. Equivalente a função inet_aton() existente em outras linguagens.
Parameters:
Name Type Description addressstring Endereço ip
- See:
Returns:
Representação numérica do endereço informado.
- Type
- number
-
<static> getNetworkRange(address)
-
Calcula o primeiro e o último endereço IP de uma rede.
Parameters:
Name Type Description addressstring Endereço IP da rede. Deve ser informado utilizando a notação CIDR. Exemplo: 192.168.0.0/16.
Returns:
Array do primeiro e último ip da rede informada.
- Type
- Array
-
<static> getNumberNetworkRange(address)
-
Calcula a representação numérica do primeiro e o último endereço IP de uma rede.
Parameters:
Name Type Description addressstring Endereço IP da rede. Deve ser informado utilizando a notação CIDR. Exemplo: 192.168.0.0/16.
Returns:
Array das representações numéricas do primeiro e último ip da rede informada.
- Type
- Array
-
<static> isIPv4Address(address)
-
Verifica se o endereço informado é um IPv4 válido, opcionalmente na notação CIDR. Não são aceitos espaços, octetos vazios ou com zeros à esquerda, nem uma máscara vazia.
Parameters:
Name Type Description addressstring Endereço que deve ser verificado.
Returns:
True se o endereço informado é um IPv4.
- Type
- boolean
Example
NetworkUtilities.isIPv4Address('10.0.0.1'); // => true NetworkUtilities.isIPv4Address('10.0.0.0/8'); // => true NetworkUtilities.isIPv4Address('10.0.0.'); // => false NetworkUtilities.isIPv4Address(' 10.0.0.1'); // => false -
<static> isIPv6Address(address)
-
Verifica se o endereço informado é um IPv6 válido. Aceita a forma comprimida (::), um IPv4 no final do endereço e a notação CIDR. Não aceita colchetes nem identificador de zona.
Parameters:
Name Type Description addressstring Endereço que deve ser verificado.
Returns:
True se o endereço informado é um IPv6.
- Type
- boolean
Example
NetworkUtilities.isIPv6Address('::1'); // => true NetworkUtilities.isIPv6Address('2001:db8::/32'); // => true NetworkUtilities.isIPv6Address('::ffff:192.168.0.1'); // => true NetworkUtilities.isIPv6Address('192.168.0.1'); // => false -
<static> maskToNumber(mask)
-
Converte a representação textual de uma máscara de rede no valor da máscara CIDR.
Parameters:
Name Type Description maskstring Representação textual da máscara. Exemplo: "255.0.0.0".
- See:
Returns:
Máscara CIDR. Número inteiro variando de 0 a 32.
- Type
- number
-
<static> numberToAddress(num)
-
Converte a representação numérica de um endereço IPv4 em uma string. Equivalente a função inet_ntoa() existente em outras linguagens.
Parameters:
Name Type Description numnumber Número gerado pelo método NetworkUtilities.addressToNumber()
- See:
Returns:
Representação textual do endereço informado.
- Type
- string
-
<static> numberToMask(num)
-
Converte uma máscara CIDR em uma representação textual.
Parameters:
Name Type Description numnumber Máscara numérica CIDR. Número inteiro variando de 0 a 32.
- See:
Returns:
Representação textual da máscara. Exemplo: "255.0.0.0".
- Type
- string
-
<static> unmapIPv4Address(address)
-
Obtém o IPv4 de um endereço IPv4 mapeado em IPv6, como "::ffff:10.0.0.1" ou "::ffff:a00:1". Os demais endereços são retornados sem alteração.
Parameters:
Name Type Description addressstring Endereço IP, sem a máscara.
Returns:
O endereço IPv4, se o endereço for mapeado, ou o próprio endereço.
- Type
- string
Example
NetworkUtilities.unmapIPv4Address('::ffff:10.0.0.1'); // => '10.0.0.1' NetworkUtilities.unmapIPv4Address('::ffff:a00:1'); // => '10.0.0.1' NetworkUtilities.unmapIPv4Address('2001:db8::1'); // => '2001:db8::1' NetworkUtilities.unmapIPv4Address('10.0.0.1'); // => '10.0.0.1'