Ipaddress - escopo, global

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. 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 os formulários canônicos (encurtados/padrão) e expandidos 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 o formulário canônico (encurtado/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 canônico (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 o formulário expandido do endereço IP especificado

    Por exemplo, o formulário expandido do endereço IPv6 "::1" é "0000:0000:0000:0000:0000:0000:0000:0001". O formulário expandido 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 desse 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 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 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 IANA e. Registro de endereços de finalidade especial 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 de 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

    Ipaddress - 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 IANA e. Registro de endereços de finalidade especial 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 será 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

    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

    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

    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 da classe IPAddress em vez da chamada do 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

    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 da classe IPAddress em vez da chamada do 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 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?: " + 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 o formulário expandido 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 desse 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