---
sourceDocument: Referência de API do Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - pt-BR

ft:publication_title :

    - Referência de API do Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Endereço IP - com escopo, global

# Endereço IP - com escopo, global {#ariaid-title1}

* Versão de lançamento: Xanadu
* 
* Atualizado 1 de ago. de 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 14 min. de leitura

A API IPAddress fornece métodos que permitem verificar vários estados de um endereço IP especificado, por exemplo, se é roteável, unicast, multicast, público ou reservado. Ele também permite que você obtenha as formas canônica (abreviada/padrão) e expandida de um endereço IP.
Acesse a classe IPAddress global e seus métodos associados no namespace global `SNC`.

Nesta API, alguns dos métodos são estáticos e outros não estáticos. Os [métodos isV4()](https://servicenow-prod.fluidtopics.net/KMaC1IhJYCUP5shtABEjuA#IPAdd-isV4_S "Determina se o endereço IP especificado é um endereço IPv4 válido.") e [isV6()](https://servicenow-prod.fluidtopics.net/KMaC1IhJYCUP5shtABEjuA#IPAdd-isV6_S "Determina se o endereço IP especificado é um endereço IPv6 válido.") 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 método [IPAddress()](https://servicenow-prod.fluidtopics.net/KMaC1IhJYCUP5shtABEjuA#IPAddressAPIBoth "A API IPAddress fornece métodos que permitem verificar vários estados de um endereço IP especificado, por exemplo, se é roteável, unicast, multicast, público ou reservado. Ele também permite que você obtenha as formas canônica (abreviada/padrão) e expandida de um endereço IP.") para instanciar um objeto IPAddress.

## Endereço IP - Endereço IP (cadeia de caracteres Endereço IP) {#ariaid-title2}

Instancia um objeto IPAddress para o endereço IP especificado.
{#IPAdd-IPAddress_S__table_hvk_txg_htb__entry__3}

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

{#IPAdd-IPAddress_S__table_hvk_txg_htb}  
O exemplo de código a seguir mostra como chamar o construtor IPAddress ao chamar um método não estático de IPAddress.

    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());
    }

## Endereço IP - canonicalize(String ipAddress) {#ariaid-title3}

Retorna a forma canônica (abreviada/padrão) do endereço IP especificado, removendo qualquer preenchimento de 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.
{#IPAdd-canonicalize_S__table_r4h_yzg_htb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| ipAddress | Cadeia de caracteres ou objeto | Endereço IP para canonicalizar ou um objeto IPAddress com escopo que contém o endereço IP. |
[Tabela 2. Parâmetros]

{#IPAdd-canonicalize_S__table_r4h_yzg_htb} {#IPAdd-canonicalize_S__table_s4h_yzg_htb__entry__2}

| Tipo | Descrição |
|-|-|
| Cadeia de caracteres | Endereço IP canonizado (abreviado/padronizado). |
[Tabela 3. Retorna]

{#IPAdd-canonicalize_S__table_s4h_yzg_htb}  
O exemplo a seguir mostra como usar a versão com escopo deste método para canonicalizar 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

## Endereço IP - getExpanded(cadeia de caracteres endereçoip) {#ariaid-title4}

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.
{#IPAdd-getExpanded_S__table_q1m_n1n_htb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| ipAddress | Cadeia de caracteres | Endereço IP a ser expandido. |
[Tabela 4. Parâmetros]

{#IPAdd-getExpanded_S__table_q1m_n1n_htb} {#IPAdd-getExpanded_S__table_r1m_n1n_htb__entry__2}

| Tipo | Descrição |
|-|-|
| Cadeia de caracteres | Endereço IP expandido. |
[Tabela 5. Retorna]

{#IPAdd-getExpanded_S__table_r1m_n1n_htb}  
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

## Endereço IP - isLinkLocal() {#ariaid-title5}

Determina se o objeto IPAddress especificado é um endereço IP de link local.
Para obter mais informações sobre endereços IP de link local, consulte [RFC 3927](https://datatracker.ietf.org/doc/html/rfc3927) e [RFC 4291](https://datatracker.ietf.org/doc/html/rfc4291).  
Nota:  
Este é um método não estático.
{#IPAdd-isLinkLocal__table_fyr_mg4_htb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 6. Parâmetros]

{#IPAdd-isLinkLocal__table_fyr_mg4_htb} {#IPAdd-isLinkLocal__table_gyr_mg4_htb__entry__2}

| Tipo | Descrição |
|-|-|
| Booliano | Sinalizador que indica se o objeto de endereço IP é um endereço de link local. 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. {#IPAdd-isLinkLocal__ul_bhr_ddn_htb} |
[Tabela 7. Retorna]

{#IPAdd-isLinkLocal__table_gyr_mg4_htb}  
O exemplo de código a seguir mostra como usar a versão com escopo deste método para verificar se os endereços IP em um registro na tabela Intervalos de IP de 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

## Endereço IP - isLocalhost() {#ariaid-title6}

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ço de finalidade especial IPv4 IANA e Registro de endereço](https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml)[de finalidade especial IPv6 IANA](https://www.iana.org/assignments/iana-ipv6-special-registry/iana-ipv6-special-registry.xml).  
Nota:  
Este é um método não estático.
{#IPAdd-isLocalhost__table_kgl_g3l_3tb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 8. Parâmetros]

{#IPAdd-isLocalhost__table_kgl_g3l_3tb} {#IPAdd-isLocalhost__table_lgl_g3l_3tb__entry__2}

| 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. {#IPAdd-isLocalhost__ul_bhr_ddn_htb} |
[Tabela 9. Retorna]

{#IPAdd-isLocalhost__table_lgl_g3l_3tb}  
O exemplo de código a seguir mostra como usar a versão com escopo deste método para verificar se os endereços IP em um registro na tabela Intervalos de IP de 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

## Endereço IP - isMulticast() {#ariaid-title7}

Determina se o objeto IPAddress especificado é um endereço IP multicast.
Para obter mais informações sobre endereços IP multicast, consulte [RFC 2365](https://datatracker.ietf.org/doc/html/rfc2365) e [RFC 3306](https://datatracker.ietf.org/doc/html/rfc3306).  
Nota:  
Este é um método não estático.
{#IPAdd-isMulticast__table_qww_sh4_htb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 10. Parâmetros]

{#IPAdd-isMulticast__table_qww_sh4_htb} {#IPAdd-isMulticast__table_rww_sh4_htb__entry__2}

| 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. {#IPAdd-isMulticast__ul_bhr_ddn_htb} |
[Tabela 11. Retorna]

{#IPAdd-isMulticast__table_rww_sh4_htb}  
O exemplo de código a seguir mostra como usar a versão com escopo deste método para verificar se os endereços IP em um registro na tabela Intervalos de IP de 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

## Endereço IP - isPublic() {#ariaid-title8}

Determina se o objeto IPAddress especificado é um endereço IP público. Um endereço IP é considerado público se for roteável e não for um endereço reservado.
Nota:  
Este é um método não estático.
{#IPAdd-isPublic__table_l2f_22l_3tb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 12. Parâmetros]

{#IPAdd-isPublic__table_l2f_22l_3tb} {#IPAdd-isPublic__table_m2f_22l_3tb__entry__2}

| 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. {#IPAdd-isPublic__ul_bhr_ddn_htb} |
[Tabela 13. Retorna]

{#IPAdd-isPublic__table_m2f_22l_3tb}  
O exemplo de código a seguir mostra como usar a versão com escopo deste método para verificar se os endereços IP em um registro na tabela Intervalos de IP de 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

## Endereço IP - isReservado() {#ariaid-title9}

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 para fins especiais IANA IPv4 e Registro de endereços](https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml)[para fins especiais IPv6 IANA](https://www.iana.org/assignments/iana-ipv6-special-registry/iana-ipv6-special-registry.xml).  
Nota:  
Este é um método não estático.
{#IPAdd-isReserved__table_lpw_ffl_3tb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 14. Parâmetros]

{#IPAdd-isReserved__table_lpw_ffl_3tb} {#IPAdd-isReserved__table_mpw_ffl_3tb__entry__2}

| 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. {#IPAdd-isReserved__ul_bhr_ddn_htb} |
[Tabela 15. Retorna]

{#IPAdd-isReserved__table_mpw_ffl_3tb}  
O exemplo de código a seguir mostra como usar a versão com escopo deste método para verificar se os endereços IP em um registro na tabela Intervalos de IP de 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

## Endereço IP - isRoutable() {#ariaid-title10}

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](https://datatracker.ietf.org/doc/html/rfc1918) e [RFC 4193](https://datatracker.ietf.org/doc/html/rfc4193).  
Nota:  
Este é um método não estático.
{#IPAdd-isRoutable__table_pv3_m34_htb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 16. Parâmetros]

{#IPAdd-isRoutable__table_pv3_m34_htb} {#IPAdd-isRoutable__table_qv3_m34_htb__entry__2}

| 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. {#IPAdd-isRoutable__ul_bhr_ddn_htb} |
[Tabela 17. Retorna]

{#IPAdd-isRoutable__table_qv3_m34_htb}  
O exemplo de código a seguir mostra como usar a versão com escopo deste método para verificar se os endereços IP em um registro na tabela Intervalos de IP de 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

## Endereço IP - isSameVersionAs(String ipAddress) {#ariaid-title11}

Determina se o objeto IPAddress passado é da mesma versão, IPv4 ou IPv6, que o endereço IP especificado.
Nota:  
Este é um método não estático.
{#IPAdd-isSameVersionAs_S__table_x2x_4f4_htb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| ipAddress | Cadeia de caracteres | Endereço IP a ser verificado em relação ao endereço IP no objeto IPAddress passado. |
[Tabela 18. Parâmetros]

{#IPAdd-isSameVersionAs_S__table_x2x_4f4_htb} {#IPAdd-isSameVersionAs_S__table_y2x_4f4_htb__entry__2}

| Tipo | Descrição |
|-|-|
| Booliano | Sinalizador que indica se o endereço IP especificado é da mesma versão que no objeto IPAddress. Valores válidos: * verdadeiro: a versão do endereço IP é a mesma. * falso: a versão do endereço IP é diferente. {#IPAdd-isSameVersionAs_S__ul_bhr_ddn_htb} |
[Tabela 19. Retorna]

{#IPAdd-isSameVersionAs_S__table_y2x_4f4_htb}  
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

## Endereço IP - isUnicast() {#ariaid-title12}

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.
{#IPAdd-isUnicast__table_zk3_bhl_3tb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 20. Parâmetros]

{#IPAdd-isUnicast__table_zk3_bhl_3tb} {#IPAdd-isUnicast__table_al3_bhl_3tb__entry__2}

| 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. {#IPAdd-isUnicast__ul_bhr_ddn_htb} |
[Tabela 21. Retorna]

{#IPAdd-isUnicast__table_al3_bhl_3tb}  
O exemplo de código a seguir mostra como usar a versão com escopo deste método para verificar se os endereços IP em um registro na tabela Intervalos de IP de 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

## Endereço IP - isV4(String ipAddress) {#ariaid-title13}

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.
{#IPAdd-isV4_S__table_hrb_3gn_htb__entry__3}

| 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 `, New SNC.IPAddress("::1").isV4();`. |
[Tabela 22. Parâmetros]

{#IPAdd-isV4_S__table_hrb_3gn_htb} {#IPAdd-isV4_S__table_irb_3gn_htb__entry__2}

| 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. {#IPAdd-isV4_S__ul_bhr_ddn_htb} |
[Tabela 23. Retorna]

{#IPAdd-isV4_S__table_irb_3gn_htb}  
O exemplo a seguir mostra como usar a versão estática com escopo deste método para verificar se os endereços IP em um registro na tabela Intervalos de IP de 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 deste método para verificar se os endereços IP em um registro na tabela Intervalos de IP de 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

## Endereço IP - isV6(String ipAddress) {#ariaid-title14}

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.
{#IPAdd-isV6_S__table_nkk_sgn_htb__entry__3}

| 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 `, New SNC.IPAddress("::1").isV6();`. |
[Tabela 24. Parâmetros]

{#IPAdd-isV6_S__table_nkk_sgn_htb} {#IPAdd-isV6_S__table_okk_sgn_htb__entry__2}

| 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. {#IPAdd-isV6_S__ul_bhr_ddn_htb} |
[Tabela 25. Retorna]

{#IPAdd-isV6_S__table_okk_sgn_htb}  
O exemplo a seguir mostra como usar a versão estática com escopo deste método para verificar se os endereços IP em um registro na tabela Intervalos de IP de 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 de 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

## Endereço IP - isValid(String ipAddress) {#ariaid-title15}

Determina se o endereço IP especificado é um endereço IPv4 ou IPv6 válido.
Nota:  
Este é um método estático.
{#IPAdd-isValid_S__table_onf_mcn_htb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| ipAddress | Cadeia de caracteres | Endereço IP a ser validado. |
[Tabela 26. Parâmetros]

{#IPAdd-isValid_S__table_onf_mcn_htb} {#IPAdd-isValid_S__table_pnf_mcn_htb__entry__2}

| 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. {#IPAdd-isValid_S__ul_bhr_ddn_htb} |
[Tabela 27. Retorna]

{#IPAdd-isValid_S__table_pnf_mcn_htb}  
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

## Endereço IP - toExpanded() {#ariaid-title16}

Retorna o formulário expandido de um objeto IPAddress.
Nota:  
Este é um método não estático.
{#IPAdd-toExpanded__table_xn2_mjl_3tb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 28. Parâmetros]

{#IPAdd-toExpanded__table_xn2_mjl_3tb} {#IPAdd-toExpanded__table_yn2_mjl_3tb__entry__2}

| Tipo | Descrição |
|-|-|
| Cadeia de caracteres | Endereço IP expandido. |
[Tabela 29. Retorna]

{#IPAdd-toExpanded__table_yn2_mjl_3tb}  
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


