Ipaddress - escopo, global

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 14 min. de leitura
  • . Endereço IP A API fornece métodos que permitem verificar vários estados de um endereço IP especificado, como se ele é roteável, unicast, multicast, público ou reservado. Ele também permite que você obtenha as formas canônicas (abreviadas/padrão) e expandidas de um endereço IP.

    Acesse o global Endereço IP e seus métodos associados no SNC namespace global.

    Nesta API, alguns dos métodos são estáticos e outros não estáticos. . IsV4() e. IsV6() os métodos fornecem implementações estáticas e não estáticas. O benefício dos métodos não estáticos é que você não precisa chamar o. Ipaddress() Método para instanciar um objeto IPAddress.

    IPAddress - IPAddress(cadeia de caracteres ipaddress)

    Instancia um objeto IPAddress para o endereço IP especificado.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    ipAddress Cadeia de caracteres Endereço IP para o qual o objeto IPAddress será criado.

    O exemplo de código a seguir mostra como chamar o construtor IPAddress ao chamar um não estático Endereço IP método.

    function() {
      var grDiscover = new GlideRecord('discovery_range_item');
      grDiscover.get("SYS_ID");
    
      var ip = grDiscover.getValue('network_ip');
      var ip2 = gs.getSession().getClientIP().toString();
      gs.info("ip address 1: " + ip);
      gs.info("ip address 2: " + ip2);
      gs.info("ip address 1 is routable?: " + new SNC.IPAddress(ip).isRoutable());
      gs.info("ip address 2 is routable?: " + new SNC.IPAddress(ip2).isRoutable());
    }

    Ipaddress - canonicalize(cadeia de caracteres ipaddress)

    Retorna a forma canônica (abreviada/padrão) do endereço IP especificado removendo qualquer preenchimento zero do endereço.

    Por exemplo, a forma canônica do endereço IPv6 "0000:0000:0000:0000:0000:0000:0000:0001" é "::1". A forma canônica do endereço IPv4 "192.168.001.002" é "192.268.1.2".

    Nota:
    Este é um método estático.
    Tabela 2. Parâmetros
    Nome Tipo Descrição
    ipAddress Cadeia de caracteres ou objeto Endereço IP a ser canonizado ou um objeto IPAddress com escopo que contém o endereço IP.
    Tabela 3. Retornos
    Tipo Descrição
    Cadeia de caracteres Endereço IP canonicalizado (encurtado/padronizado).

    O exemplo a seguir mostra como usar a versão com escopo desse método para canonizar um endereço IP IPv6.

    function() {
      var grCMDB = new GlideRecord('cmdb_ci');
      grCMDB.get("SYS_ID");
      var ip = grCMDB.getValue('ip_address');
      gs.info("ip address: " + ip);
      gs.info("canonicalized ip: " + SNC.IPAddress.canonicalize(ip));
    }

    Saída:

    ip address: 0000:0000:0000:0000:0000:0000:0000:0001
    canonicalized ip: ::1

    Ipaddress - getExpanded (cadeia de caracteres ipaddress)

    Retorna a forma expandida do endereço IP especificado

    Por exemplo, a forma expandida do endereço IPv6 "::1" é "0000:0000:0000:0000:0000:0000:0000:0001". A forma expandida do endereço IPv4 "192.268.1.2" é "192.168.001.002".

    Nota:
    Este é um método estático.
    Tabela 4. Parâmetros
    Nome Tipo Descrição
    ipAddress Cadeia de caracteres Endereço IP a ser expandido.
    Tabela 5. Retornos
    Tipo Descrição
    Cadeia de caracteres Endereço IP expandido.

    O exemplo a seguir mostra como usar a versão com escopo deste método para expandir um endereço IP IPv6.

    function() {
      var grCMDB = new GlideRecord('cmdb_ci');
      grCMDB.get(SYS_ID);
      var ip = grCMDB.getValue('ip_address');
      gs.info("ip address: " + ip);
      gs.info("expanded ip: " + SNC.IPAddress.getExpanded(ip));
    }

    Saída:

    ip address: ::1
    expanded ip: 0000:0000:0000:0000:0000:0000:0000:0001

    IsLinkLocal()

    Determina se o objeto IPAddress especificado é um endereço IP local de link.

    Para obter mais informações sobre endereços IP de link-local, consulte RFC 3927 e. RFC 4291 .

    Nota:
    Este é um método não estático.
    Tabela 6. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 7. Retorna
    Tipo Descrição
    Booliano

    Sinalizador que indica se o objeto de endereço IP é um endereço local de link.

    Valores válidos:
    • Verdadeiro: O endereço IP é um endereço de link-local.
    • Falso: O endereço IP não é um endereço de link-local.

    O exemplo de código a seguir mostra como usar a versão com escopo desse método para verificar se os endereços IP em um registro na tabela Intervalos de IP da Descoberta [discovery_range_item] são endereços de link-local.

    function() {
      var grDiscover = new GlideRecord('discovery_range_item');
      grDiscover.get("SYS_ID");
    
      var ip = grDiscover.getValue('network_ip');
      var start_ip = grDiscover.getValue('start_ip_address');
      gs.info("ip address 1: " + ip);
      gs.info("ip address 2: " + start_ip);
      gs.info("ip address 1 is link local?: " + new SNC.IPAddress(ip).isLinkLocal());
      gs.info("ip address 2 is link local?: " + new SNC.IPAddress(start_ip).isLinkLocal());
    }

    Saída:

    ip address 1: ::1
    ip address 2: fe80:1::1
    ip address 1 is link local?: false
    ip address 2 is link local?: true

    IsLocalhost()

    Determina se o objeto IPAddress especificado é o endereço IP de loopback.

    Para obter informações adicionais sobre o endereço IP de loopback, consulte Registro de endereços de finalidade especial IPv4 da IANA e. Registro de endereços de finalidade especial do IANA IPv6 .

    Nota:
    Este é um método não estático.
    Tabela 8. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 9. Retorna
    Tipo Descrição
    Booliano

    Sinalizador que indica se o objeto do endereço IP é o endereço IP de loopback.

    Valores válidos:
    • Verdadeiro: O endereço IP é o endereço IP de loopback.
    • Falso: O endereço IP não é o endereço IP de loopback.

    O exemplo de código a seguir mostra como usar a versão com escopo desse método para verificar se os endereços IP em um registro na tabela Intervalos de IP da Descoberta [discovery_range_item] são o endereço IP de loopback.

    function() {
      var grDiscover = new GlideRecord('discovery_range_item');
      grDiscover.get("SYS_ID");
      var ip = grDiscover.getValue('network_ip');
      var start_ip = grDiscover.getValue('start_ip_address');
      gs.info("ip address 1: " + ip);
      gs.info("ip address 2: " + start_ip);
      gs.info("ip address 1 is localhost?: " + new SNC.IPAddress(ip).isLocalhost());
      gs.info("ip address 2 is localhost?: " + new SNC.IPAddress(ip2).isLocalhost());
    }

    Saída:

    ip address 1: 127.0.0.1
    ip address 2: <current user's public IP Address>
    ip address 1 is localhost?: true
    ip address 2 is localhost?: false

    IsMulticast()

    Determina se o objeto IPAddress especificado é um endereço IP multicast.

    Para obter mais informações sobre endereços IP multicast, consulte RFC 2365 e. RFC 3306 .

    Nota:
    Este é um método não estático.
    Tabela 10. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 11. Retorna
    Tipo Descrição
    Booliano

    Sinalizador que indica se o objeto de endereço IP é um endereço multicast.

    Valores válidos:
    • Verdadeiro: O endereço IP é um endereço multicast.
    • Falso: O endereço IP não é um endereço multicast.

    O exemplo de código a seguir mostra como usar a versão com escopo desse método para verificar se os endereços IP em um registro na tabela Intervalos de IP da Descoberta [discovery_range_item] são endereços multicast.

    function() {
      var grDiscover = new GlideRecord('discovery_range_item');
      grDiscover.get("SYS_ID");
      var ip = grDiscover.getValue('network_ip');
      var start_ip = grDiscover.getValue('start_ip_address');
      gs.info("ip address 1: " + ip);
      gs.info("ip address 2: " + start_ip);
      gs.info("ip address 1 is multicast?: " + new SNC.IPAddress(ip).isMulticast());
      gs.info("ip address 2 is multicast?: " + new SNC.IPAddress(start_ip).isMulticast());
    }

    Saída:

    ip address 1: ::1
    ip address 2: 224.0.0.22
    ip address 1 is multicast?: false
    ip address 2 is multicast?: true

    IsPublic()

    Determina se o objeto IPAddress especificado é um endereço IP público. Um endereço IP será considerado público se for roteável e não for um endereço reservado.

    Nota:
    Este é um método não estático.
    Tabela 12. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 13. Retorna
    Tipo Descrição
    Booliano

    Sinalizador que indica se o objeto de endereço IP é um endereço público.

    Valores válidos:
    • Verdadeiro: O endereço IP é um endereço público.
    • Falso: O endereço IP não é um endereço público.

    O exemplo de código a seguir mostra como usar a versão com escopo desse método para verificar se os endereços IP em um registro na tabela Intervalos de IP da Descoberta [discovery_range_item] são endereços públicos.

    function() {
      var grDiscover = new GlideRecord('discovery_range_item');
      grDiscover.get("SYS_ID");
      var ip = grDiscover.getValue('network_ip');
      var ip2 = gs.getSession().getClientIP().toString();
      gs.info("ip address 1: " + ip);
      gs.info("ip address 2: " + ip2);
      gs.info("ip address 1 is public?: " + new SNC.IPAddress(ip).isPublic());
      gs.info("ip address 2 is public?: " + new SNC.IPAddress(ip2).isPublic());
    }

    Saída:

    ip address 1: 2001:1::1
    ip address 2: <current user's public IP Address>
    ip address 1 is public?: false
    ip address 2 is public?: true

    IsReserved()

    Determina se o objeto IPAddress especificado é um endereço IP reservado.

    Para obter informações adicionais sobre endereços IP reservados, consulte Registro de endereços de finalidade especial IPv4 da IANA e. Registro de endereços de finalidade especial do IANA IPv6 .

    Nota:
    Este é um método não estático.
    Tabela 14. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 15. Retorna
    Tipo Descrição
    Booliano

    Sinalizador que indica se o objeto de endereço IP é um endereço reservado.

    Valores válidos:
    • Verdadeiro: O endereço IP é um endereço reservado.
    • Falso: O endereço IP não é um endereço reservado.

    O exemplo de código a seguir mostra como usar a versão com escopo desse método para verificar se os endereços IP em um registro na tabela Intervalos de IP da Descoberta [discovery_range_item] são endereços reservados.

    function() {
      var grDiscover = new GlideRecord('discovery_range_item');
      grDiscover.get("SYS_ID");
      var ip = grDiscover.getValue('network_ip');
      var ip2 = gs.getSession().getClientIP().toString();
      gs.info("ip address 1: " + ip);
      gs.info("ip address 2: " + ip2);
      gs.info("ip address 1 is reserved?: " + new SNC.IPAddress(ip).isReserved());
      gs.info("ip address 2 is reserved?: " + new SNC.IPAddress(ip2).isReserved());
    }

    Saída:

    ip address 1: 2001:1::1
    ip address 2: <current user's public IP Address>
    ip address 1 is reserved?: true
    ip address 2 is reserved?: false

    Ipaddress - isRoutable()

    Determina se o objeto IPAddress especificado é um endereço IP roteável.

    Um endereço IP é considerado roteável se não for um endereço privado, um endereço de link local ou o endereço de loopback. Para obter informações adicionais sobre endereços privados, consulte RFC 1918 e. RFC 4193 .

    Nota:
    Este é um método não estático.
    Tabela 16. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 17. Retorna
    Tipo Descrição
    Booliano

    Sinalizador que indica se o objeto de endereço IP é um endereço roteável.

    Valores válidos:
    • Verdadeiro: O endereço IP é um endereço roteável.
    • Falso: O endereço IP não é um endereço roteável.

    O exemplo de código a seguir mostra como usar a versão com escopo desse método para verificar se os endereços IP em um registro na tabela Intervalos de IP da Descoberta [discovery_range_item] são endereços roteáveis.

    function() {
      var grDiscover = new GlideRecord('discovery_range_item');
      grDiscover.get("SYS_ID");
      var ip = grDiscover.getValue('network_ip');
      var ip2 = gs.getSession().getClientIP().toString();
      gs.info("ip address 1: " + ip);
      gs.info("ip address 2: " + ip2);
      gs.info("ip address 1 is routable?: " + new SNC.IPAddress(ip).isRoutable());
      gs.info("ip address 2 is routable?: " + new SNC.IPAddress(ip2).isRoutable());
    }

    Saída:

    ip address 1: ::1
    ip address 2: <current user's public IP Address>
    ip address 1 is routable?: false
    ip address 2 is routable?: true

    Ipaddress - isSameVersionAs(cadeia de caracteres ipaddress)

    Determina se o objeto IPAddress aprovado é a mesma versão, IPv4 ou IPv6, que o endereço IP especificado.

    Nota:
    Este é um método não estático.
    Tabela 18. Parâmetros
    Nome Tipo Descrição
    ipAddress Cadeia de caracteres Endereço IP a ser verificado em relação ao endereço IP no objeto IPAddress aprovado.
    Tabela 19. Retornos
    Tipo Descrição
    Booliano

    Sinalizador que indica se o endereço IP especificado é da mesma versão do objeto IPAddress.

    Valores válidos:
    • Verdadeiro: A versão do endereço IP é a mesma.
    • Falso: A versão do endereço IP é diferente.

    O exemplo de código a seguir mostra como usar a versão com escopo deste método para comparar se vários endereços IP são da mesma versão (IPv4 ou IPv6).

    function() {
      var grDiscover = new GlideRecord('discovery_range_item');
      grDiscover.get("SYS_ID");
      var ip = grDiscover.getValue('network_ip');
      var start_ip = grDiscover.getValue('start_ip_address');
      var end_ip = grDiscover.getValue('end_ip_address');
      gs.info("ip address 1: "+ ip);
      gs.info("ip address 2: " + start_ip);
      gs.info("ip address 3: " + end_ip);
      var ip1 = new SNC.IPAddress(ip);
      var ip2 = new SNC.IPAddress(start_ip);
      var ip3 = new SNC.IPAddress(end_ip);
      gs.info("ip address 1 is same version as ip address 2?: " + ip1.isSameVersionAs(ip2));
      gs.info("ip address 1 is same version as itself?: " + ip1.isSameVersionAs(ip1));
      gs.info("ip address 2 is same version as ip address 3?: " + ip2.isSameVersionAs(ip3));
    }

    Saída:

    ip address 1: 192.168.0.1
    ip address 2: ::2
    ip address 3: ::3
    ip address 1 is same version as ip address 2?: false
    ip address 1 is same version as itself?: true
    ip address 2 is same version as ip address 3?: true

    Ipaddress - isUnicast()

    Determina se o objeto IPAddress especificado é um endereço IP unicast.

    Um endereço unicast é efetivamente um endereço que não é multicast.

    Nota:
    Este é um método não estático.
    Tabela 20. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 21. Retorna
    Tipo Descrição
    Booliano

    Sinalizador que indica se o objeto de endereço IP é um endereço unicast.

    Valores válidos:
    • Verdadeiro: O endereço IP é um endereço unicast.
    • Falso: O endereço IP não é um endereço unicast.

    O exemplo de código a seguir mostra como usar a versão com escopo desse método para verificar se os endereços IP em um registro na tabela Intervalos de IP da Descoberta [discovery_range_item] são endereços unicast.

    function() {
      var grDiscover = new GlideRecord('discovery_range_item');
      grDiscover.get("SYS_ID");
      var ip = grDiscover.getValue('network_ip');
      var start_ip = grDiscover.getValue('start_ip_address');
      gs.info("ip address 1: " + ip);
      gs.info("ip address 2: " + start_ip);
      gs.info("ip address 1 is unicast?: " + new SNC.IPAddress(ip).isUnicast());
      gs.info("ip address 2 is unicast?: " + new SNC.IPAddress(ip2).isUnicast());
    }

    Saída:

    ip address 1: 224.0.0.22
    ip address 2: <current user's public IP Address>
    ip address 1 is unicast?: false
    ip address 2 is unicast?: true

    Ipaddress - isV4(cadeia de caracteres ipaddress)

    Determina se o endereço IP especificado é um endereço IPv4 válido.

    Este método tem implementações estáticas e não estáticas. A maneira como você chama os dois tipos de método é um pouco diferente. Para a implementação não estática, você não precisa primeiro instanciar um objeto IPAddress e passar o endereço IP na referência de classe IPAddress. Ambos retornam a mesma resposta.

    Tabela 22. Parâmetros
    Nome Tipo Descrição
    ipAddress Cadeia de caracteres Endereço IP a ser validado.

    Para a implementação não estática, o endereço IP é passado na referência de classe IPAddress em vez da chamada de método.

    Por exemplo Novo snc.IPAddress("::1").isV4(); .

    Tabela 23. Retornos
    Tipo Descrição
    Booliano

    Sinalizador que indica se o endereço IP especificado é um endereço IPv4 válido.

    Valores válidos:
    • Verdadeiro: O endereço IP é válido.
    • Falso: O endereço IP é inválido.

    O exemplo a seguir mostra como usar a versão estática com escopo desse método para verificar se os endereços IP em um registro na tabela Intervalos de IP da Descoberta [discovery_range_item] são endereços IPv4 válidos.

    function() {
      var grDiscover = new GlideRecord('discovery_range_item');
      grDiscover.get("SYS_ID");
      var ip = grDiscover.getValue('network_ip');
      var start_ip = grDiscover.getValue('start_ip_address');
      gs.info("ip address 1: " + ip);
      gs.info("ip address 2: " + start_ip);
      gs.info("ip address 1 is v4?: " + SNC.IPAddress.isV4(ip));
      gs.info(("ip address 2 is v4?: " + SNC.IPAddress.isV4(start_ip));
    }

    Saída:

    ip address 1: 192.168.0.1
    ip address 2: ::2
    ip address 1 is v4?: true
    ip address 2 is v4?: false

    O exemplo a seguir mostra como usar a versão não estática desse método para verificar se os endereços IP em um registro na tabela Intervalos de IP da Descoberta [discovery_range_item] são endereços IPv4 válidos.

    function() {
      var grDiscover = new GlideRecord('discovery_range_item');
      grDiscover.get("SYS_ID");
      var ip = grDiscover.getValue('network_ip');
      var start_ip = grDiscover.getValue('start_ip_address');
      gs.info("ip address 1: " + ip);
      gs.info("ip address 2: " + start_ip);
      gs.info("ip address 1 is v4?: " + new SNC.IPAddress(ip).isV4());
      gs.info("ip address 2 is v4?: " + new SNC.IPAddress(start_ip).isV4());
    }

    Saída:

    ip address 1: 192.168.0.1
    ip address 2: ::2
    ip address 1 is v4?: true
    ip address 2 is v4?: false

    Ipaddress - isV6(cadeia de caracteres ipaddress)

    Determina se o endereço IP especificado é um endereço IPv6 válido.

    Este método tem implementações estáticas e não estáticas. A maneira como você chama os dois tipos de método é um pouco diferente. Para a implementação não estática, você não precisa primeiro instanciar um objeto IPAddress e passar o endereço IP na referência de classe IPAddress. Ambos retornam a mesma resposta.

    Tabela 24. Parâmetros
    Nome Tipo Descrição
    ipAddress Cadeia de caracteres Endereço IP a ser validado.

    Para a implementação não estática, o endereço IP é passado na referência de classe IPAddress em vez da chamada de método.

    Por exemplo Novo snc.IPAddress("::1").isV6(); .

    Tabela 25. Retornos
    Tipo Descrição
    Booliano

    Sinalizador que indica se o endereço IP especificado é um endereço IPv6 válido.

    Valores válidos:
    • Verdadeiro: O endereço IP é válido.
    • Falso: O endereço IP é inválido.

    O exemplo a seguir mostra como usar a versão estática com escopo desse método para verificar se os endereços IP em um registro na tabela Intervalos de IP da Descoberta [discovery_range_item] são endereços IPv6 válidos.

    function() {
      var grDiscover = new GlideRecord('discovery_range_item');
      grDiscover.get(SYS_ID);
      var ip = grDiscover.getValue('network_ip');
      var start_ip = grDiscover.getValue('start_ip_address');
      gs.info("ip address 1: " + ip);
      gs.info("ip address 2: " + start_ip);
      gs.info("ip address 1 is v6?: " + SNC.IPAddress.isV6(ip));
      gs.info(("ip address 2 is v6?: " + SNC.IPAddress.isV6(start_ip));
    }

    Saída:

    ip address 1: 192.168.0.1
    ip address 2: ::2
    ip address 1 is v6?: false
    ip address 2 is v6?: true

    O exemplo a seguir mostra como usar a versão não estática com escopo deste método para verificar se os endereços IP em um registro na tabela Intervalos de IP da Descoberta [discovery_range_item] são endereços IPv6 válidos.

    function() {
      var grDiscover = new GlideRecord('discovery_range_item');
      grDiscover.get("SYS_ID");
    
      var ip = grDiscover.getValue('network_ip');
      var start_ip = grDiscover.getValue('start_ip_address');
      gs.info("ip address 1: " + ip);
      gs.info("ip address 2: " + start_ip);
    
      gs.info("ip address 1 is v6?: " + new SNC.IPAddress(ip).isV6());
      gs.info("ip address 2 is v6?: " + new SNC.IPAddress(start_ip).isV6());
    
    }

    Saída:

    ip address 1: 192.168.0.1
    ip address 2: ::1
    ip address 1 is v6?: false
    ip address 2 is v6?: true

    Ipaddress - isValid(cadeia de caracteres ipaddress)

    Determina se o endereço IP especificado é um endereço IPv4 ou IPv6 válido.

    Nota:
    Este é um método estático.
    Tabela 26. Parâmetros
    Nome Tipo Descrição
    ipAddress Cadeia de caracteres Endereço IP a ser validado.
    Tabela 27. Retornos
    Tipo Descrição
    Booliano

    Sinalizador que indica se o endereço IP especificado é um endereço IPv4 ou IPv6 válido.

    Valores válidos:
    • Verdadeiro: O endereço IP é válido.
    • Falso: O endereço IP é inválido.

    O exemplo de código a seguir mostra como usar a versão com escopo deste método para verificar se o endereço IP em um registro nos Itens de configuração [cmdb_ci] é válido.

    function() {
      var grCMDB = new GlideRecord('cmdb_ci');
      grCMDB.get("SYS_ID");
      var ip = grCMDB.getValue('ip_address');
      gs.info("ip address: " + ip)
      var ipAddress = new SNC.IPAddress(ip);
      gs.info("ip is valid?: " + ipAddress.isValid())
    }

    Saída:

    ip address: 127.0.0.1
    ip is valid?: true

    ToExpanded()

    Retorna a forma expandida de um objeto IPAddress.

    Nota:
    Este é um método não estático.
    Tabela 28. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 29. Retorna
    Tipo Descrição
    Cadeia de caracteres Endereço IP expandido.

    O exemplo a seguir mostra como usar a versão com escopo deste método para expandir um endereço IP IPv6.

    function() {
      var grDiscover = new GlideRecord('cmdb_ci');
      grDiscover.get("SYS_ID");
      var ip = grDiscover.getValue('ip_address');
      gs.info("ip address: " + ip);
      gs.info("expanded ip address: " + new SNC.IPAddress(ip).toExpanded());
    }

    Saída:

    ip address: 2001:41::1
    expanded ip address: 2001:0041:0000:0000:0000:0000:0000:0001