IPAddress – Scoped, Global
Die IPAddress- API stellt Methoden bereit, mit denen Sie verschiedene Status einer angegebenen IP-Adresse überprüfen können, z. B. ob sie weiterleitbar, Unicast, Multicast, öffentlich oder reserviert ist. Sie können damit auch die kanonische (gekürzte/Standard) und erweiterte Form einer IP-Adresse abrufen.
Greifen Sie auf die globale IPAddress -Klasse und die zugehörigen Methoden im globalen SNC -Namespace zu.
In dieser API sind einige der Methoden statisch und andere nicht statisch. Die Methoden isV4() und isV6() bieten sowohl statische als auch nicht statische Implementierungen. Der Vorteil der nicht statischen Methoden besteht darin, dass Sie die IPAddress()- Methode nicht aufrufen müssen, um ein IPAddress-Objekt zu instanziieren.
IPAddress – IPAddress(String ipAddress)
Instantiiert 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 beim Aufruf einer nicht statischen IPAddress -Methode aufgerufen wird.
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 Form (gekürzt/Standard) der angegebenen IP-Adresse zurück, indem alle Nullen aus der Adresse entfernt werden.
Zum Beispiel lautet 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“ lautet „192.268.1.2“.
| Name | Typ | Beschreibung |
|---|---|---|
| ipAddress | Zeichenfolge oder Objekt | Zu kanonisierende IP-Adresse 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 die bereichsbezogene Version dieser Methode zum Kanonisieren einer IPv6-IP-Adresse verwendet wird.
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(String ipAddress)
Gibt die erweiterte Form der angegebenen IP-Adresse zurück
Zum Beispiel 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 erweiternde IP-Adresse. |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Erweiterte IP-Adresse |
Das folgende Beispiel zeigt, wie die bereichsbezogene Version dieser Methode zum Erweitern einer IPv6-IP-Adresse verwendet wird.
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-Local-Adresse ist. Gültige Werte:
|
Das folgende Codebeispiel zeigt, wie Sie mit der bereichsbezogenen Version dieser Methode überprüfen, ob die IP-Adressen in einem Datensatz in der Tabelle „Discovery-IP-Bereiche“ [discovery_range_item] link-local-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 spezielle Zwecke und IANA IPv6-Adressregistrierung für spezielle 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 Sie mit der bereichsbezogenen Version dieser Methode ü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 Sie mit der bereichsbezogenen Version dieser Methode ü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 weiterleitbar ist und keine reservierte Adresse ist.
| 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 Sie mit der bereichsbezogenen Version dieser Methode ü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 spezielle Zwecke und IANA IPv6-Adressregistrierung für spezielle 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 Sie mit der bereichsbezogenen Version dieser Methode ü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 weiterleitbare IP-Adresse ist.
Eine IP-Adresse gilt als weiterleitbar, wenn es sich nicht um eine private Adresse, eine Link-Local-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 weiterleitbare Adresse ist. Gültige Werte:
|
Das folgende Codebeispiel zeigt, wie Sie mit der bereichsbezogenen Version dieser Methode überprüfen, ob die IP-Adressen in einem Datensatz in der Tabelle „Discovery-IP-Bereiche“ [discovery_range_item] weiterleitbare 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 hat.
| Name | Typ | Beschreibung |
|---|---|---|
| ipAddress | Zeichenfolge | IP-Adresse, die mit der IP-Adresse im übergebenen IPAddress-Objekt verglichen werden soll. |
| Typ | Beschreibung |
|---|---|
| Boolean | Kennzeichnung, die angibt, ob die angegebene IP-Adresse dieselbe Version wie die im IPAddress-Objekt hat. Gültige Werte:
|
Das folgende Codebeispiel zeigt, wie die bereichsbezogene Version dieser Methode verwendet wird, um zu vergleichen, ob verschiedene IP-Adressen dieselbe Version haben (IPv4 oder 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));
}
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 kein 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 Sie mit der bereichsbezogenen Version dieser Methode ü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(String ipAddress)
Bestimmt, ob die angegebene IP-Adresse eine gültige IPv4-Adresse ist.
Diese Methode verfügt über statische und 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 ü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 anstelle des Methodenaufrufs in der IPAddress-Klassenreferenz übergeben. 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 mit der bereichsbezogenen statischen Version dieser Methode ü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 mit der nicht statischen Version dieser Methode ü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 über statische und 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 ü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 anstelle des Methodenaufrufs in der IPAddress-Klassenreferenz übergeben. 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 mit der bereichsbezogenen statischen Version dieser Methode ü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 mit der bereichsbezogenen nicht statischen Version dieser Methode ü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(String 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 mit der bereichsbezogenen Version dieser Methode ü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 die bereichsbezogene Version dieser Methode zum Erweitern einer IPv6-IP-Adresse verwendet wird.
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