Ipaddress: Bereichsbezogen, global
Die Ipaddress Die API bietet Methoden, mit denen Sie nach verschiedenen status einer angegebenen IP-Adresse suchen können, z. B. ob sie routingfähig, Unicast, Multicast, öffentlich oder reserviert ist. Außerdem können Sie die kanonischen (gekürzt/Standard) und erweiterten Formen einer IP-Adresse abrufen.
Greifen Sie auf die globale zu Ipaddress Klasse und die zugehörigen Methoden in SNC Globaler Namespace.
In dieser API sind einige der Methoden statisch und einige nicht statisch. Die IsV4() Und IsV6() Methoden bieten sowohl statische als auch nicht statische Implementierungen. Der Vorteil der nicht statischen Methoden besteht darin, dass Sie nicht aufrufen müssen Ipaddress() Methode zum Instanziieren eines IPAddress-Objekts.
Ipaddress: IPAddress(Zeichenfolge ipAddress)
Instanziiert ein IPAddress-Objekt für die angegebene IP-Adresse.
| Name | Typ | Beschreibung |
|---|---|---|
| ipAddress | Zeichenfolge | IP-Adresse, für die das IPAddress-Objekt erstellt werden soll. |
Das folgende Codebeispiel zeigt, wie der IPAddress-Konstruktor aufgerufen wird, wenn ein nicht statisches aufgerufen wird Ipaddress Methode.
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)
Gibt die kanonische (gekürzte/standardmäßige) Form der angegebenen IP-Adresse zurück, indem keine Auffüllung von der Adresse entfernt wird.
Beispielsweise ist die kanonische Form der IPv6-Adresse „0000:0000:0000:0000:0000:0000:0000:0001“ „::1“. Die kanonische Form der IPv4-Adresse „192.168.001.002“ ist „192.268.1,2“.
| Name | Typ | Beschreibung |
|---|---|---|
| ipAddress | Zeichenfolge oder Objekt | IP-Adresse, die kanonisiert werden soll, oder ein bereichsbezogenes IPAddress-Objekt, das die IP-Adresse enthält. |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Kanonisierte (gekürzte/standardisierte) IP-Adresse. |
Das folgende Beispiel zeigt, wie Sie die bereichsbezogene Version dieser Methode verwenden, um eine IPv6-IP-Adresse zu kanonisieren.
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));
}
Ausgabe:
ip address: 0000:0000:0000:0000:0000:0000:0000:0001
canonicalized ip: ::1
Ipaddress – getExpanded(Zeichenfolge ipAddress)
Gibt die erweiterte Form der angegebenen IP-Adresse zurück
Beispielsweise lautet die erweiterte Form der IPv6-Adresse „::1“ „0000:0000:0000:0000:0000:0000:0000:0001“. Die erweiterte Form der IPv4-Adresse „192.268.1,2“ lautet „192.168.001.002“.
| Name | Typ | Beschreibung |
|---|---|---|
| ipAddress | Zeichenfolge | Zu erweiterende IP-Adresse. |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Erweiterte IP-Adresse. |
Das folgende Beispiel zeigt, wie Sie die bereichsbezogene Version dieser Methode verwenden, um eine IPv6-IP-Adresse zu erweitern.
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));
}
Ausgabe:
ip address: ::1
expanded ip: 0000:0000:0000:0000:0000:0000:0000:0001
Ipaddress – isLinkLocal()
Bestimmt, ob das angegebene IPAddress-Objekt eine Link-lokale IP-Adresse ist.
Weitere Informationen zu Link-lokalen IP-Adressen finden Sie unter RFC 3927 Und RFC 4291 .
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Boolean | Kennzeichnung, die angibt, ob das IP-Adressobjekt eine Link-lokale Adresse ist. Gültige Werte:
|
Das folgende Codebeispiel zeigt, wie die bereichsbezogene Version dieser Methode verwendet wird, um zu überprüfen, ob die IP-Adressen in einem Datensatz in der Tabelle „Discovery-IP-Bereiche“ [Discovery_Range_item] Link-lokale Adressen sind.
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());
}
Ausgabe:
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()
Bestimmt, ob das angegebene IPAddress-Objekt die Loopback-IP-Adresse ist.
Weitere Informationen zur Loopback-IP-Adresse finden Sie unter IANA-IPv4-Adressregistrierung für besondere Zwecke Und IANA-IPv6-Adressregistrierung für besondere Zwecke .
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Boolean | Kennzeichnung, die angibt, ob das IP-Adressobjekt die Loopback-IP-Adresse ist. Gültige Werte:
|
Das folgende Codebeispiel zeigt, wie die bereichsbezogene Version dieser Methode verwendet wird, um zu überprüfen, ob die IP-Adressen in einem Datensatz in der Tabelle „Discovery-IP-Bereiche“ [Discovery_Range_item] die Loopback-IP-Adresse sind.
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());
}
Ausgabe:
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()
Bestimmt, ob das angegebene IPAddress-Objekt eine Multicast-IP-Adresse ist.
Weitere Informationen zu Multicast-IP-Adressen finden Sie unter RFC 2365 Und RFC 3306 .
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Boolean | Kennzeichnung, die angibt, ob das IP-Adressobjekt eine Multicast-Adresse ist. Gültige Werte:
|
Das folgende Codebeispiel zeigt, wie die bereichsbezogene Version dieser Methode verwendet wird, um zu überprüfen, ob die IP-Adressen in einem Datensatz in der Tabelle „Discovery-IP-Bereiche“ [Discovery_Range_item] Multicast-Adressen sind.
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());
}
Ausgabe:
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()
Bestimmt, ob das angegebene IPAddress-Objekt eine öffentliche IP-Adresse ist. Eine IP-Adresse gilt als öffentlich, wenn sie routingfähig ist, und sie ist keine reservierte Adresse.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Boolean | Kennzeichnung, die angibt, ob das IP-Adressobjekt eine öffentliche Adresse ist. Gültige Werte:
|
Das folgende Codebeispiel zeigt, wie die bereichsbezogene Version dieser Methode verwendet wird, um zu überprüfen, ob die IP-Adressen in einem Datensatz in der Tabelle „Discovery-IP-Bereiche“ [Discovery_Range_item] öffentliche Adressen sind.
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());
}
Ausgabe:
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()
Bestimmt, ob das angegebene IPAddress-Objekt eine reservierte IP-Adresse ist.
Weitere Informationen zu reservierten IP-Adressen finden Sie unter IANA-IPv4-Adressregistrierung für besondere Zwecke Und IANA-IPv6-Adressregistrierung für besondere Zwecke .
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Boolean | Kennzeichnung, die angibt, ob das IP-Adressobjekt eine reservierte Adresse ist. Gültige Werte:
|
Das folgende Codebeispiel zeigt, wie die bereichsbezogene Version dieser Methode verwendet wird, um zu überprüfen, ob die IP-Adressen in einem Datensatz in der Tabelle „Discovery-IP-Bereiche“ [Discovery_Range_item] reservierte Adressen sind.
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());
}
Ausgabe:
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()
Bestimmt, ob das angegebene IPAddress-Objekt eine routingfähige IP-Adresse ist.
Eine IP-Adresse gilt als routingfähig, wenn es sich nicht um eine private Adresse, eine Link-lokale Adresse oder die Loopback-Adresse handelt. Weitere Informationen zu privaten Adressen finden Sie unter RFC 1918 Und RFC 4193 .
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Boolean | Kennzeichnung, die angibt, ob das IP-Adressobjekt eine routingfähige Adresse ist. Gültige Werte:
|
Das folgende Codebeispiel zeigt, wie die bereichsbezogene Version dieser Methode verwendet wird, um zu überprüfen, ob die IP-Adressen in einem Datensatz in der Tabelle „Discovery-IP-Bereiche“ [Discovery_Range_item] routingfähige Adressen sind.
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());
}
Ausgabe:
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)
Bestimmt, ob das übergebene IPAddress-Objekt dieselbe Version, IPv4 oder IPv6, wie die angegebene IP-Adresse ist.
| Name | Typ | Beschreibung |
|---|---|---|
| ipAddress | Zeichenfolge | IP-Adresse, die anhand der IP-Adresse im übergebenen IPAddress-Objekt überprüft werden soll. |
| Typ | Beschreibung |
|---|---|
| Boolean | Kennzeichnung, die angibt, ob die angegebene IP-Adresse dieselbe Version wie im IPAddress-Objekt ist. Gültige Werte:
|
Das folgende Codebeispiel zeigt, wie die bereichsbezogene Version dieser Methode verwendet wird, um zu vergleichen, ob verschiedene IP-Adressen dieselbe Version (IPv4 oder IPv6) sind.
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));
}
Ausgabe:
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()
Bestimmt, ob das angegebene IPAddress-Objekt eine Unicast-IP-Adresse ist.
Eine Unicast-Adresse ist effektiv eine Adresse, die nicht Multicast ist.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Boolean | Kennzeichnung, die angibt, ob das IP-Adressobjekt eine Unicast-Adresse ist. Gültige Werte:
|
Das folgende Codebeispiel zeigt, wie die bereichsbezogene Version dieser Methode verwendet wird, um zu überprüfen, ob die IP-Adressen in einem Datensatz in der Tabelle „Discovery-IP-Bereiche“ [Discovery_Range_item] Unicast-Adressen sind.
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());
}
Ausgabe:
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(Zeichenfolge ipAddress)
Bestimmt, ob die angegebene IP-Adresse eine gültige IPv4-Adresse ist.
Diese Methode verfügt sowohl über statische als auch über nicht statische Implementierungen. Die Art und Weise, wie Sie die beiden Methodentypen aufrufen, unterscheidet sich geringfügig. Für die nicht statische Implementierung müssen Sie nicht zuerst ein IPAddress-Objekt instanziieren, und Sie übergeben die IP-Adresse in der IPAddress-Klassenreferenz. Beide geben dieselbe Antwort zurück.
| Name | Typ | Beschreibung |
|---|---|---|
| ipAddress | Zeichenfolge | Zu validierende IP-Adresse. Bei der nicht statischen Implementierung wird die IP-Adresse in der IPAddress-Klassenreferenz anstelle des Methodenaufrufs übergeben. Zum Beispiel |
| Typ | Beschreibung |
|---|---|
| Boolean | Kennzeichnung, die angibt, ob die angegebene IP-Adresse eine gültige IPv4-Adresse ist. Gültige Werte:
|
Das folgende Beispiel zeigt, wie Sie die bereichsbezogene statische Version dieser Methode verwenden, um zu überprüfen, ob IP-Adressen in einem Datensatz in der Tabelle „Discovery-IP-Bereiche“ [Discovery_Range_item] gültige IPv4-Adressen sind.
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));
}
Ausgabe:
ip address 1: 192.168.0.1
ip address 2: ::2
ip address 1 is v4?: true
ip address 2 is v4?: false
Das folgende Beispiel zeigt, wie Sie die nicht statische Version dieser Methode verwenden, um zu überprüfen, ob IP-Adressen in einem Datensatz in der Tabelle „Discovery-IP-Bereiche“ [Discovery_Range_item] gültige IPv4-Adressen sind.
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());
}
Ausgabe:
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(String ipAddress)
Bestimmt, ob die angegebene IP-Adresse eine gültige IPv6-Adresse ist.
Diese Methode verfügt sowohl über statische als auch über nicht statische Implementierungen. Die Art und Weise, wie Sie die beiden Methodentypen aufrufen, unterscheidet sich geringfügig. Für die nicht statische Implementierung müssen Sie nicht zuerst ein IPAddress-Objekt instanziieren, und Sie übergeben die IP-Adresse in der IPAddress-Klassenreferenz. Beide geben dieselbe Antwort zurück.
| Name | Typ | Beschreibung |
|---|---|---|
| ipAddress | Zeichenfolge | Zu validierende IP-Adresse. Bei der nicht statischen Implementierung wird die IP-Adresse in der IPAddress-Klassenreferenz anstelle des Methodenaufrufs übergeben. Zum Beispiel |
| Typ | Beschreibung |
|---|---|
| Boolean | Kennzeichnung, die angibt, ob die angegebene IP-Adresse eine gültige IPv6-Adresse ist. Gültige Werte:
|
Das folgende Beispiel zeigt, wie Sie die bereichsbezogene statische Version dieser Methode verwenden, um zu überprüfen, ob IP-Adressen in einem Datensatz in der Tabelle „Discovery-IP-Bereiche“ [Discovery_Range_item] gültige IPv6-Adressen sind.
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));
}
Ausgabe:
ip address 1: 192.168.0.1
ip address 2: ::2
ip address 1 is v6?: false
ip address 2 is v6?: true
Das folgende Beispiel zeigt, wie Sie die bereichsbezogene nicht statische Version dieser Methode verwenden, um zu überprüfen, ob IP-Adressen in einem Datensatz in der Tabelle „Discovery-IP-Bereiche“ [Discovery_Range_item] gültige IPv6-Adressen sind.
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());
}
Ausgabe:
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(Zeichenfolge ipAddress)
Bestimmt, ob die angegebene IP-Adresse eine gültige IPv4- oder IPv6-Adresse ist.
| Name | Typ | Beschreibung |
|---|---|---|
| ipAddress | Zeichenfolge | Zu validierende IP-Adresse. |
| Typ | Beschreibung |
|---|---|
| Boolean | Kennzeichnung, die angibt, ob die angegebene IP-Adresse eine gültige IPv4- oder IPv6-Adresse ist. Gültige Werte:
|
Das folgende Codebeispiel zeigt, wie Sie die bereichsbezogene Version dieser Methode verwenden, um zu überprüfen, ob die IP-Adresse in einem Datensatz innerhalb der Konfigurationselemente [cmdb_ci] gültig ist.
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())
}
Ausgabe:
ip address: 127.0.0.1
ip is valid?: true
Ipaddress – toExpanded()
Gibt die erweiterte Form eines IPAddress-Objekts zurück.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Erweiterte IP-Adresse. |
Das folgende Beispiel zeigt, wie Sie die bereichsbezogene Version dieser Methode verwenden, um eine IPv6-IP-Adresse zu erweitern.
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());
}
Ausgabe:
ip address: 2001:41::1
expanded ip address: 2001:0041:0000:0000:0000:0000:0000:0001