IPAddress - Champ d’application, global
L’API IPAddress fournit des méthodes qui vous permettent de vérifier les différents états d’une adresse IP spécifiée, par exemple si elle est routable, unicast, multicast, publique ou réservée. Il vous permet également d’obtenir les formes canoniques (abrégées/standard) et étendues d’une adresse IP.
Accédez à la classe IPAddress globale et à ses méthodes associées dans l’espace de noms global SNC .
Dans cette API, certaines méthodes sont statiques et d’autres non statiques. Les méthodes isV4() et isV6() fournissent des implémentations statiques et non statiques. L’avantage des méthodes non statiques est que vous n’avez pas besoin d’appeler la méthode IPAddress() pour instancier un objet IPAddress.
IPAddress - IPAddress (chaîne ipAddress)
Instancie un objet IPAddress pour l’adresse IP spécifiée.
| Nom | Type | Description |
|---|---|---|
| ipAddress | Chaîne | Adresse IP pour laquelle créer l’objet IPAddress. |
L’exemple de code suivant montre comment appeler le constructeur IPAddress lors de l’appel d’une méthode IPAddress non statique.
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(String ipAddress)
Renvoie la forme canonique (abrégée/standard) de l’adresse IP spécifiée en supprimant tout remplissage zéro de l’adresse.
Par exemple, la forme canonique de l’adresse IPv6 « 0000:0000:0000:0000:0000:0000:0000:00001 » est « ::1 ». La forme canonique de l’adresse IPv4 « 192.168.001.002 » est « 192.268.1.2 ».
| Nom | Type | Description |
|---|---|---|
| ipAddress | Chaîne ou objet | Adresse IP à canoniser ou un objet IPAddress inclus dans le périmètre qui contient l’adresse IP. |
| Type | Description |
|---|---|
| Chaîne | Adresse IP canonique (raccourcie/standardisée). |
L’exemple suivant montre comment utiliser la version incluse dans le champ d’application de cette méthode pour canoniser une adresse 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));
}
Sortie :
ip address: 0000:0000:0000:0000:0000:0000:0000:0001
canonicalized ip: ::1
IPAddress : getExpanded(String ipAddress)
Renvoie la forme développée de l’adresse IP spécifiée
Par exemple, la forme développée de l’adresse IPv6 « ::1 » est « 0000:0000:0000:0000:0000:0000:0000:0001 ». La forme étendue de l’adresse IPv4 « 192.268.1.2 » est « 192.168.001.002 ».
| Nom | Type | Description |
|---|---|---|
| ipAddress | Chaîne | Adresse IP à développer. |
| Type | Description |
|---|---|
| Chaîne | Adresse IP développée. |
L’exemple suivant montre comment utiliser la version incluse dans le champ d’application de cette méthode pour développer une adresse 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));
}
Sortie :
ip address: ::1
expanded ip: 0000:0000:0000:0000:0000:0000:0000:0001
IPAddress : isLinkLocal()
Détermine si l’objet IPAddress spécifié est une adresse IP lien-local.
Pour plus d’informations sur les adresses IP locales de liaison, consultez les RFC 3927 et RFC 4291.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si l’objet d’adresse IP est une adresse lien-local. Valeurs valides :
|
L’exemple de code suivant montre comment utiliser la version incluse dans le champ d’application de cette méthode pour vérifier si les adresses IP d’un enregistrement dans la table Plages IP de découverte [discovery_range_item] sont des adresses lien-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());
}
Sortie :
ip address 1: ::1
ip address 2: fe80:1::1
ip address 1 is link local?: false
ip address 2 is link local?: true
IPAddress : isLocalhost()
Détermine si l’objet IPAddress spécifié est l’adresse IP de bouclage.
Pour plus d’informations sur l’adresse IP de bouclage, consultez Registre d’adresses à usage spécial IPv4 IANA et Registre d’adresses à usage spécial IPv6 IANA.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si l’objet d’adresse IP est l’adresse IP de bouclage. Valeurs valides :
|
L’exemple de code suivant montre comment utiliser la version incluse dans le champ d’application de cette méthode pour vérifier si les adresses IP d’un enregistrement dans la table Plages IP de découverte [discovery_range_item] sont l’adresse IP de bouclage.
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());
}
Sortie :
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
IPAddress - isMulticast()
Détermine si l’objet IPAddress spécifié est une adresse IP de multidiffusion.
Pour plus d’informations sur les adresses IP de multidiffusion, consultez les RFC 2365 et RFC 3306.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si l’objet d’adresse IP est une adresse de multidiffusion. Valeurs valides :
|
L’exemple de code suivant montre comment utiliser la version incluse dans le champ d’application de cette méthode pour vérifier si les adresses IP d’un enregistrement dans la table Plages IP de découverte [discovery_range_item] sont des adresses de multidiffusion.
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());
}
Sortie :
ip address 1: ::1
ip address 2: 224.0.0.22
ip address 1 is multicast?: false
ip address 2 is multicast?: true
IPAddress : isPublic()
Détermine si l’objet IPAddress spécifié est une adresse IP publique. Une adresse IP est considérée comme publique si elle est routable et n’est pas une adresse réservée.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si l’objet d’adresse IP est une adresse publique. Valeurs valides :
|
L’exemple de code suivant montre comment utiliser la version incluse dans le champ d’application de cette méthode pour vérifier si les adresses IP d’un enregistrement dans la table Plages IP de découverte [discovery_range_item] sont des adresses publiques.
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());
}
Sortie :
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()
Détermine si l’objet IPAddress spécifié est une adresse IP réservée.
Pour plus d’informations sur les adresses IP réservées, consultez Registre d’adresses à usage spécial IANA IPv4 et Registre d’adresses à usage spécial IANA IPv6.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si l’objet d’adresse IP est une adresse réservée. Valeurs valides :
|
L’exemple de code suivant montre comment utiliser la version incluse dans le champ d’application de cette méthode pour vérifier si les adresses IP d’un enregistrement dans la table Plages IP de découverte [discovery_range_item] sont des adresses réservées.
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());
}
Sortie :
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()
Détermine si l’objet IPAddress spécifié est une adresse IP routable.
Une adresse IP est considérée comme routable si elle n’est pas une adresse privée, une adresse lien-local ou l’adresse de bouclage. Pour plus d’informations sur les adresses privées, consultez RFC 1918 et RFC 4193.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si l’objet d’adresse IP est une adresse routable. Valeurs valides :
|
L’exemple de code suivant montre comment utiliser la version incluse dans le champ d’application de cette méthode pour vérifier si les adresses IP d’un enregistrement dans la table Plages IP de découverte [discovery_range_item] sont des adresses routables.
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());
}
Sortie :
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(String ipAddress)
Détermine si l’objet IPAddress transmis est de la même version, IPv4 ou IPv6, que l’adresse IP spécifiée.
| Nom | Type | Description |
|---|---|---|
| ipAddress | Chaîne | Adresse IP à vérifier par rapport à l’adresse IP dans l’objet IPAddress transmis. |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si l’adresse IP spécifiée est la même version que celle de l’objet IPAddress. Valeurs valides :
|
L’exemple de code suivant montre comment utiliser la version incluse dans le champ d’application de cette méthode pour comparer si différentes adresses IP sont de la même version (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));
}
Sortie :
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()
Détermine si l’objet IPAddress spécifié est une adresse IP unicast.
Une adresse unicast est en fait une adresse qui n’est pas multicast.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si l’objet d’adresse IP est une adresse unicast. Valeurs valides :
|
L’exemple de code suivant montre comment utiliser la version incluse dans le champ d’application de cette méthode pour vérifier si les adresses IP dans un enregistrement de la table Plages IP de découverte [discovery_range_item] sont des adresses de monodiffusion.
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());
}
Sortie :
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(chaîne ipAddress)
Détermine si l’adresse IP spécifiée est une adresse IPv4 valide.
Cette méthode a des implémentations statiques et non statiques. La façon dont vous appelez les deux types de méthodes est légèrement différente. Pour l’implémentation non statique, vous n’avez pas besoin d’instancier d’abord un objet IPAddress et vous transmettez l’adresse IP dans la référence de classe IPAddress. Les deux renvoient la même réponse.
| Nom | Type | Description |
|---|---|---|
| ipAddress | Chaîne | Adresse IP à valider. Pour l’implémentation non statique, l’adresse IP est transmise dans la référence de classe IPAddress au lieu de l’appel de méthode. Par exemple, |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si l’adresse IP spécifiée est une adresse IPv4 valide. Valeurs valides :
|
L’exemple suivant montre comment utiliser la version statique incluse dans le champ d’application de cette méthode pour vérifier si les adresses IP d’un enregistrement dans la table Plages IP de découverte [discovery_range_item] sont des adresses IPv4 valides.
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));
}
Sortie :
ip address 1: 192.168.0.1
ip address 2: ::2
ip address 1 is v4?: true
ip address 2 is v4?: false
L’exemple suivant montre comment utiliser la version non statique de cette méthode pour vérifier si les adresses IP figurant dans un enregistrement de la table Plages IP de découverte [discovery_range_item] sont des adresses IPv4 valides.
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());
}
Sortie :
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(chaîne ipAddress)
Détermine si l’adresse IP spécifiée est une adresse IPv6 valide.
Cette méthode a des implémentations statiques et non statiques. La façon dont vous appelez les deux types de méthodes est légèrement différente. Pour l’implémentation non statique, vous n’avez pas besoin d’instancier d’abord un objet IPAddress et vous transmettez l’adresse IP dans la référence de classe IPAddress. Les deux renvoient la même réponse.
| Nom | Type | Description |
|---|---|---|
| ipAddress | Chaîne | Adresse IP à valider. Pour l’implémentation non statique, l’adresse IP est transmise dans la référence de classe IPAddress au lieu de l’appel de méthode. Par exemple, |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si l’adresse IP spécifiée est une adresse IPv6 valide. Valeurs valides :
|
L’exemple suivant montre comment utiliser la version statique incluse dans le champ d’application de cette méthode pour vérifier si les adresses IP d’un enregistrement dans la table Plages IP de découverte [discovery_range_item] sont des adresses IPv6 valides.
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));
}
Sortie :
ip address 1: 192.168.0.1
ip address 2: ::2
ip address 1 is v6?: false
ip address 2 is v6?: true
L’exemple suivant montre comment utiliser la version non statique incluse dans le champ d’application de cette méthode pour vérifier si les adresses IP d’un enregistrement dans la table Plages IP de découverte [discovery_range_item] sont des adresses IPv6 valides.
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());
}
Sortie :
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(String ipAddress)
Détermine si l’adresse IP spécifiée est une adresse IPv4 ou IPv6 valide.
| Nom | Type | Description |
|---|---|---|
| ipAddress | Chaîne | Adresse IP à valider. |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si l’adresse IP spécifiée est une adresse IPv4 ou IPv6 valide. Valeurs valides :
|
L’exemple de code suivant montre comment utiliser la version incluse dans le champ d’application de cette méthode pour vérifier si l’adresse IP d’un enregistrement dans les éléments de configuration [cmdb_ci] est valide.
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())
}
Sortie :
ip address: 127.0.0.1
ip is valid?: true
IPAddress - toExpanded()
Renvoie la forme développée d’un objet IPAddress.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Adresse IP développée. |
L’exemple suivant montre comment utiliser la version incluse dans le champ d’application de cette méthode pour développer une adresse 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());
}
Sortie :
ip address: 2001:41::1
expanded ip address: 2001:0041:0000:0000:0000:0000:0000:0001