---
sourceDocument: Xanadu API リファレンス
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# IPAddress - スコープ対象、グローバル

# IPAddress - スコープ対象、グローバル {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：26分

IPAddress API は、ルーティング可能、ユニキャスト、マルチキャスト、パブリック、予約済みなど、指定された IP アドレスのさまざまなステータスをチェック可能にするメソッドを提供します。また、IP アドレスの canonical (短縮/標準) および展開形式を取得することもできます。
`SNC` グローバル名前空間内のグローバル IPAddress クラスとそれに関連するメソッドにアクセスします。

この API には、静的なメソッドと静的でないメソッドがあります。[isV4()](https://servicenow-prod.fluidtopics.net/lqB3xUxtYXKfv~~r1EJ3ZA#IPAdd-isV4_S "指定された IP アドレスが有効な IPv4 アドレスかどうかを判断します。") メソッドと [isV6()](https://servicenow-prod.fluidtopics.net/lqB3xUxtYXKfv~~r1EJ3ZA#IPAdd-isV6_S "指定された IP アドレスが有効な IPv6 アドレスかどうかを判断します。") メソッドは、静的実装と非静的実装の両方を提供します。非静的メソッドの利点は、IPAddress オブジェクトをインスタンス化するために [IPAddress()](https://servicenow-prod.fluidtopics.net/lqB3xUxtYXKfv~~r1EJ3ZA#IPAddressAPIBoth "IPAddress API は、ルーティング可能、ユニキャスト、マルチキャスト、パブリック、予約済みなど、指定された IP アドレスのさまざまなステータスをチェック可能にするメソッドを提供します。また、IP アドレスの canonical (短縮/標準) および展開形式を取得することもできます。") メソッドを呼び出す必要がないことです。

## IPAddress - IPAddress(文字列 ipAddress) {#ariaid-title2}

指定された IP アドレスの IPAddress オブジェクトをインスタンス化します。
{#IPAdd-IPAddress_S__table_hvk_txg_htb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| ipAddress | 文字列 | IPAddress オブジェクトの作成対象となる IP アドレス。 |
[表 : 1. パラメーター]

{#IPAdd-IPAddress_S__table_hvk_txg_htb}  
次のコード例は、静的でない IPAddress メソッドを呼び出すときに 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());
    }

## IPAddress - canonicalize(文字列 ipAddress) {#ariaid-title3}

アドレスからゼロパディングを削除して、指定された IP アドレスの正規化された (短縮/標準) 形式を返します。
たとえば、「0000:0000:0000:0000:0000:0000:0000:0001」という IPv6 アドレスの正規化された形式は「::1」です。「192.168.001.002」という IPv4 アドレスの正規化された形式は「192.268.1.2」です。  
注:  
これは静的メソッドです。
{#IPAdd-canonicalize_S__table_r4h_yzg_htb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| ipAddress | 文字列またはオブジェクト | 正規化する IP アドレス、またはその IP アドレスを含むスコープ対象の IPAddress オブジェクト。 |
[表 : 2. パラメーター]

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

| タイプ | 説明 |
|-|-|
| 文字列 | 正規化された (短縮/標準化された) IP アドレス。 |
[表 : 3. 返される内容]

{#IPAdd-canonicalize_S__table_s4h_yzg_htb}  
次の例は、このメソッドのスコープ対象バージョンを使用して IPv6 IP アドレスを正規化する方法を示しています。

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

出力：

    ip address: 0000:0000:0000:0000:0000:0000:0000:0001
    canonicalized ip: ::1

## IPAddress - getExpanded(文字列 ipAddress) {#ariaid-title4}

指定された IP アドレスの拡張形式を返します
たとえば、「::1」という IPv6 アドレスの拡張形式は「0000:0000:0000:0000:0000:0000:0000:0001」です。「192.268.1.2」という IPv4 アドレスの拡張形式は「192.168.001.002」です。  
注:  
これは静的メソッドです。
{#IPAdd-getExpanded_S__table_q1m_n1n_htb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| ipAddress | 文字列 | 拡張する IP アドレス。 |
[表 : 4. パラメーター]

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

| タイプ | 説明 |
|-|-|
| 文字列 | 拡張 IP アドレス。 |
[表 : 5. 返される内容]

{#IPAdd-getExpanded_S__table_r1m_n1n_htb}  
次の例は、このメソッドのスコープ指定バージョンを使用して IPv6 IP アドレスを拡張する方法を示しています。

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

出力：

    ip address: ::1
    expanded ip: 0000:0000:0000:0000:0000:0000:0000:0001

## IPAddress - isLinkLocal() {#ariaid-title5}

指定された IPAddress オブジェクトがリンクローカル IP アドレスかどうかを判断します。
リンクローカル IP アドレスの詳細については、[RFC 3927](https://datatracker.ietf.org/doc/html/rfc3927) および [RFC 4291](https://datatracker.ietf.org/doc/html/rfc4291) を参照してください。  
注:  
これは静的でないメソッドです。
{#IPAdd-isLinkLocal__table_fyr_mg4_htb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 6. パラメーター]

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

| タイプ | 説明 |
|-|-|
| ブーリアン | IP アドレスオブジェクトがリンクローカルアドレスかどうかを示すフラグ。 有効な値： * true：IP アドレスはリンクローカルアドレスです。 * false：IP アドレスはリンクローカルアドレスではありません。 {#IPAdd-isLinkLocal__ul_bhr_ddn_htb} |
[表 : 7. 返される内容]

{#IPAdd-isLinkLocal__table_gyr_mg4_htb}  
次のコード例は、このメソッドのスコープ対象バージョンを使用して、検出 IP 範囲 \[discovery_range_item\] テーブルのレコード内の IP アドレスがリンクローカルアドレスであるかどうかを確認する方法を示しています。

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

出力：

    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() {#ariaid-title6}

指定された IPAddress オブジェクトがループバック IP アドレスかどうかを判断します。
ループバック IP アドレスの詳細については、「[IANA IPv4 Special-Purpose Address Registry](https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml) 」および「[IANA IPv6 Special-Purpose Address Registry](https://www.iana.org/assignments/iana-ipv6-special-registry/iana-ipv6-special-registry.xml)」を参照してください。  
注:  
これは静的でないメソッドです。
{#IPAdd-isLocalhost__table_kgl_g3l_3tb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 8. パラメーター]

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

| タイプ | 説明 |
|-|-|
| ブーリアン | IP アドレスオブジェクトがループバック IP アドレスかどうかを示すフラグ。 有効な値： * true：IP アドレスはループバック IP アドレスです。 * false：IP アドレスはループバック IP アドレスではありません。 {#IPAdd-isLocalhost__ul_bhr_ddn_htb} |
[表 : 9. 返される内容]

{#IPAdd-isLocalhost__table_lgl_g3l_3tb}  
次のコード例は、このメソッドのスコープ対象バージョンを使用して、検出 IP 範囲 \[discovery_range_item\] テーブルのレコード内の IP アドレスがループバック IP アドレスであるかどうかを確認する方法を示しています。

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

出力：

    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() {#ariaid-title7}

指定された IPAddress オブジェクトがマルチキャスト IP アドレスかどうかを判断します。
マルチキャスト IP アドレスの詳細については、[RFC 2365](https://datatracker.ietf.org/doc/html/rfc2365) および [RFC 3306](https://datatracker.ietf.org/doc/html/rfc3306) を参照してください。  
注:  
これは静的でないメソッドです。
{#IPAdd-isMulticast__table_qww_sh4_htb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 10. パラメーター]

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

| タイプ | 説明 |
|-|-|
| ブーリアン | IP アドレスオブジェクトがマルチキャストアドレスかどうかを示すフラグ。 有効な値： * true：IP アドレスはマルチキャストアドレスです。 * false：IP アドレスはマルチキャストアドレスではありません。 {#IPAdd-isMulticast__ul_bhr_ddn_htb} |
[表 : 11. 返される内容]

{#IPAdd-isMulticast__table_rww_sh4_htb}  
次のコード例は、このメソッドのスコープ対象バージョンを使用して、検出 IP 範囲 \[discovery_range_item\] テーブルのレコード内の IP アドレスがマルチキャストアドレスであるかどうかを確認する方法を示しています。

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

出力：

    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() {#ariaid-title8}

指定された IPAddress オブジェクトがパブリック IP アドレスかどうかを判断します。IP アドレスがルーティング可能で、予約済みアドレスでない場合、その IP アドレスはパブリックとみなされます。
注:  
これは静的でないメソッドです。
{#IPAdd-isPublic__table_l2f_22l_3tb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 12. パラメーター]

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

| タイプ | 説明 |
|-|-|
| ブーリアン | IP アドレスオブジェクトがパブリックアドレスかどうかを示すフラグ。 有効な値： * true：IP アドレスはパブリックアドレスです。 * false：IP アドレスはパブリックアドレスではありません。 {#IPAdd-isPublic__ul_bhr_ddn_htb} |
[表 : 13. 返される内容]

{#IPAdd-isPublic__table_m2f_22l_3tb}  
次のコード例は、このメソッドのスコープ対象バージョンを使用して、検出 IP 範囲 \[discovery_range_item\] テーブルのレコード内の IP アドレスがパブリックアドレスであるかどうかを確認する方法を示しています。

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

出力：

    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() {#ariaid-title9}

指定された IPAddress オブジェクトが予約済み IP アドレスかどうかを判断します。
予約済み IP アドレスの詳細については、「[IANA IPv4 Special-Purpose Address Registry](https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml) 」および「[IANA IPv6 Special-Purpose Address Registry](https://www.iana.org/assignments/iana-ipv6-special-registry/iana-ipv6-special-registry.xml)」を参照してください。  
注:  
これは静的でないメソッドです。
{#IPAdd-isReserved__table_lpw_ffl_3tb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 14. パラメーター]

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

| タイプ | 説明 |
|-|-|
| ブーリアン | IP アドレスオブジェクトが予約済みアドレスかどうかを示すフラグ。 有効な値： * true：IP アドレスは予約済みアドレスです。 * false：IP アドレスは予約済みアドレスではありません。 {#IPAdd-isReserved__ul_bhr_ddn_htb} |
[表 : 15. 返される内容]

{#IPAdd-isReserved__table_mpw_ffl_3tb}  
次のコード例は、このメソッドのスコープ対象バージョンを使用して、検出 IP 範囲 \[discovery_range_item\] テーブルのレコード内の IP アドレスが予約済みアドレスであるかどうかを確認する方法を示しています。

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

出力：

    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() {#ariaid-title10}

指定された IPAddress オブジェクトがルーティング可能 IP アドレスかどうかを判断します。
プライベートアドレスでもリンクローカルアドレスでもループバックアドレスでもない場合、IP アドレスはルーティング可能であるとみなされます。プライベートアドレスの詳細については、[RFC 1918](https://datatracker.ietf.org/doc/html/rfc1918) および [RFC 4193](https://datatracker.ietf.org/doc/html/rfc4193) を参照してください。  
注:  
これは静的でないメソッドです。
{#IPAdd-isRoutable__table_pv3_m34_htb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 16. パラメーター]

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

| タイプ | 説明 |
|-|-|
| ブーリアン | IP アドレスオブジェクトがルーティング可能アドレスかどうかを示すフラグ。 有効な値： * true：IP アドレスはルーティング可能アドレスです。 * false：IP アドレスはルーティング可能アドレスではありません。 {#IPAdd-isRoutable__ul_bhr_ddn_htb} |
[表 : 17. 返される内容]

{#IPAdd-isRoutable__table_qv3_m34_htb}  
次のコード例は、このメソッドのスコープ対象バージョンを使用して、検出 IP 範囲 \[discovery_range_item\] テーブルのレコード内の IP アドレスがルーティング可能アドレスであるかどうかを確認する方法を示しています。

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

出力：

    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(文字列 ipAddress) {#ariaid-title11}

渡された IPAddress オブジェクトが、指定された IP アドレスと同じバージョン (IPv4 または IPv6) であるかどうかを判別します。
注:  
これは静的でないメソッドです。
{#IPAdd-isSameVersionAs_S__table_x2x_4f4_htb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| ipAddress | 文字列 | 渡された IPAddress オブジェクトの IP アドレスと照合する IP アドレス。 |
[表 : 18. パラメーター]

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

| タイプ | 説明 |
|-|-|
| ブーリアン | 指定された IP アドレスが IPAddress オブジェクトのものと同じバージョンかどうかを示すフラグ。 有効な値： * true：IP アドレスのバージョンは同じです。 * false：IP アドレスのバージョンは異なります。 {#IPAdd-isSameVersionAs_S__ul_bhr_ddn_htb} |
[表 : 19. 返される内容]

{#IPAdd-isSameVersionAs_S__table_y2x_4f4_htb}  
次のコード例は、このメソッドのスコープ対象バージョンを使用して、さまざまな IP アドレスが同じバージョン (IPv4 または 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));
    }

出力：

    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() {#ariaid-title12}

指定された IPAddress オブジェクトがユニキャスト IP アドレスかどうかを判断します。
ユニキャストアドレスは実質的に、マルチキャストでないアドレスです。  
注:  
これは静的でないメソッドです。
{#IPAdd-isUnicast__table_zk3_bhl_3tb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 20. パラメーター]

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

| タイプ | 説明 |
|-|-|
| ブーリアン | IP アドレスオブジェクトがユニキャストアドレスかどうかを示すフラグ。 有効な値： * true：IP アドレスはユニキャストアドレスです。 * false：IP アドレスはユニキャストアドレスではありません。 {#IPAdd-isUnicast__ul_bhr_ddn_htb} |
[表 : 21. 返される内容]

{#IPAdd-isUnicast__table_al3_bhl_3tb}  
次のコード例は、このメソッドのスコープ指定バージョンを使用して、検出 IP 範囲 \[discovery_range_item\] テーブルのレコード内の IP アドレスがユニキャストアドレスであるかどうかを確認する方法を示しています。

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

出力：

    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(文字列 ipAddress) {#ariaid-title13}

指定された IP アドレスが有効な IPv4 アドレスかどうかを判断します。
このメソッドには、静的実装と静的でない実装の両方があります。2 つのメソッドタイプを呼び出す方法は少々異なります。静的でない実装の場合、最初に IPAddress オブジェクトをインスタンス化する必要はなく、IPAddress クラス参照で IP アドレスを渡します。どちらも同じ応答を返します。
{#IPAdd-isV4_S__table_hrb_3gn_htb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| ipAddress | 文字列 | 検証する IP アドレス。 静的でない実装の場合、IP アドレスはメソッドの呼び出しではなく IPAddress クラス参照で渡されます。 たとえば、 `新規 SNC などです。IPAddress("::1").isV4();`です。 |
[表 : 22. パラメーター]

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

| タイプ | 説明 |
|-|-|
| ブーリアン | 指定された IP アドレスが有効な IPv4 アドレスかどうかを示すフラグ。 有効な値： * true：IP アドレスは有効です。 * false：IP アドレスは無効です。 {#IPAdd-isV4_S__ul_bhr_ddn_htb} |
[表 : 23. 返される内容]

{#IPAdd-isV4_S__table_irb_3gn_htb}  
次の例は、このメソッドのスコープ指定の静的バージョンを使用して、検出 IP 範囲 \[discovery_range_item\] テーブルのレコード内の IP アドレスが有効な IPv4 アドレスであるかどうかを検証する方法を示しています。

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

出力：

    ip address 1: 192.168.0.1
    ip address 2: ::2
    ip address 1 is v4?: true
    ip address 2 is v4?: false

次の例は、このメソッドのスコープ指定の静的でないバージョンを使用して、検出 IP 範囲 \[discovery_range_item\] テーブルのレコード内の IP アドレスが有効な IPv4 アドレスであるかどうかを検証する方法を示しています。

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

出力：

    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(文字列 ipAddress) {#ariaid-title14}

指定された IP アドレスが有効な IPv6 アドレスかどうかを判断します。
このメソッドには、静的実装と静的でない実装の両方があります。2 つのメソッドタイプを呼び出す方法は少々異なります。静的でない実装の場合、最初に IPAddress オブジェクトをインスタンス化する必要はなく、IPAddress クラス参照で IP アドレスを渡します。どちらも同じ応答を返します。
{#IPAdd-isV6_S__table_nkk_sgn_htb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| ipAddress | 文字列 | 検証する IP アドレス。 静的でない実装の場合、IP アドレスはメソッドの呼び出しではなく IPAddress クラス参照で渡されます。 たとえば、 `新規 SNC などです。IPAddress("::1").isV6();`です。 |
[表 : 24. パラメーター]

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

| タイプ | 説明 |
|-|-|
| ブーリアン | 指定された IP アドレスが有効な IPv6 アドレスかどうかを示すフラグ。 有効な値： * true：IP アドレスは有効です。 * false：IP アドレスは無効です。 {#IPAdd-isV6_S__ul_bhr_ddn_htb} |
[表 : 25. 返される内容]

{#IPAdd-isV6_S__table_okk_sgn_htb}  
次の例は、このメソッドのスコープ指定の静的バージョンを使用して、検出 IP 範囲 \[discovery_range_item\] テーブルのレコード内の IP アドレスが有効な 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');
      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));
    }

出力：

    ip address 1: 192.168.0.1
    ip address 2: ::2
    ip address 1 is v6?: false
    ip address 2 is v6?: true

次の例は、このメソッドのスコープ指定の静的でないバージョンを使用して、検出 IP 範囲 \[discovery_range_item\] テーブルのレコード内の IP アドレスが有効な 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');
      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());

    }

出力：

    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(文字列 ipAddress) {#ariaid-title15}

指定された IP アドレスが有効な IPv4 または IPv6 アドレスかどうかを判断します。
注:  
これは静的メソッドです。
{#IPAdd-isValid_S__table_onf_mcn_htb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| ipAddress | 文字列 | 検証する IP アドレス。 |
[表 : 26. パラメーター]

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

| タイプ | 説明 |
|-|-|
| ブーリアン | 指定された IP アドレスが有効な IPv4 または IPv6 アドレスかどうかを示すフラグ。 有効な値： * true：IP アドレスは有効です。 * false：IP アドレスは無効です。 {#IPAdd-isValid_S__ul_bhr_ddn_htb} |
[表 : 27. 返される内容]

{#IPAdd-isValid_S__table_pnf_mcn_htb}  
次のコード例は、このメソッドのスコープ指定バージョンを使用して、構成アイテム \[cmdb_ci\] 内のレコードの IP アドレスが有効かどうかを確認する方法を示しています。

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

出力：

    ip address: 127.0.0.1
    ip is valid?: true

## IPAddress - toExpanded() {#ariaid-title16}

IPAddress オブジェクトの拡張形式を返します。
注:  
これは静的でないメソッドです。
{#IPAdd-toExpanded__table_xn2_mjl_3tb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 28. パラメーター]

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

| タイプ | 説明 |
|-|-|
| 文字列 | 拡張 IP アドレス。 |
[表 : 29. 返される内容]

{#IPAdd-toExpanded__table_yn2_mjl_3tb}  
次の例は、このメソッドのスコープ指定バージョンを使用して IPv6 IP アドレスを拡張する方法を示しています。

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

出力：

    ip address: 2001:41::1
    expanded ip address: 2001:0041:0000:0000:0000:0000:0000:0001


