Class: NetworkUtilities

@nginstack/engine/lib/net/NetworkUtilities~ NetworkUtilities


new NetworkUtilities()

Classe com métodos diversos para tratamento de endereços de servidores e redes.

Methods


<static> addressInNetworkRange(address, network)

Determina se o endereço faz parte da rede informada. O endereço da rede deve ser informado utilizando a notação CIDR.

Parameters:
Name Type Description
address string

Endereço que deve ser avaliado se está na rede informada.

network string

Endereço da rede

Returns:

True se o endereço faz parte da rede informada

Type
boolean

<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
address string

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
address string

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
address string

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 utilizando a notação CIDR.

Parameters:
Name Type Description
address string

Endereço que deve ser verificado.

Returns:

True se o endereço informado é um IPv4.

Type
boolean

<static> maskToNumber(mask)

Converte a representação textual de uma máscara de rede no valor da máscara CIDR.

Parameters:
Name Type Description
mask string

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
num number

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
num number

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

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
ids string | 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.

See:
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
ids String | 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
ids String | Array

Nome ou endereços ip do computador. Pode ser informado um único ou um array de identificadores do computador.

serviceClass number

Classe do serviço desejado

port number

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 + "\".")
}