Endereço IP - com escopo, global
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() e isV6() 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() para instanciar um objeto IPAddress.
Endereço IP - Endereço IP (cadeia de caracteres Endereço IP)
Instancia um objeto IPAddress para o endereço IP especificado.
| 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 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)
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".
| 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. |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | Endereço IP canonizado (abreviado/padronizado). |
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)
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".
| Nome | Tipo | Descrição |
|---|---|---|
| ipAddress | Cadeia de caracteres | Endereço IP a ser expandido. |
| 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
Endereço IP - isLinkLocal()
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 e RFC 4291.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Booliano | Sinalizador que indica se o objeto de endereço IP é um endereço de link local. Valores válidos:
|
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()
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 de finalidade especial IPv6 IANA.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Booliano | Sinalizador que indica se o objeto de endereço IP é o endereço IP de loopback. Valores válidos:
|
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()
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.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Booliano | Sinalizador que indica se o objeto de endereço IP é um endereço multicast. Valores válidos:
|
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()
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.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Booliano | Sinalizador que indica se o objeto de endereço IP é um endereço público. Valores válidos:
|
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()
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 para fins especiais IPv6 IANA.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Booliano | Sinalizador que indica se o objeto de endereço IP é um endereço reservado. Valores válidos:
|
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()
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.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Booliano | Sinalizador que indica se o objeto de endereço IP é um endereço roteável. Valores válidos:
|
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)
Determina se o objeto IPAddress passado é da mesma versão, IPv4 ou IPv6, que o endereço IP especificado.
| 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. |
| Tipo | Descrição |
|---|---|
| Booliano | Sinalizador que indica se o endereço IP especificado é da mesma versão que no objeto IPAddress. Valores válidos:
|
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()
Determina se o objeto IPAddress especificado é um endereço IP unicast.
Um endereço unicast é efetivamente um endereço que não é multicast.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Booliano | Sinalizador que indica se o objeto de endereço IP é um endereço unicast. Valores válidos:
|
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)
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.
| 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 |
| Tipo | Descrição |
|---|---|
| Booliano | Sinalizador que indica se o endereço IP especificado é um endereço IPv4 válido. Valores válidos:
|
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)
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.
| 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 |
| Tipo | Descrição |
|---|---|
| Booliano | Sinalizador que indica se o endereço IP especificado é um endereço IPv6 válido. Valores válidos:
|
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)
Determina se o endereço IP especificado é um endereço IPv4 ou IPv6 válido.
| Nome | Tipo | Descrição |
|---|---|---|
| ipAddress | Cadeia de caracteres | Endereço IP a ser validado. |
| Tipo | Descrição |
|---|---|
| Booliano | Sinalizador que indica se o endereço IP especificado é um endereço IPv4 ou IPv6 válido. Valores válidos:
|
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()
Retorna o formulário expandido de um objeto IPAddress.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| 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