# IPAddr の使い方

    require 'ipaddr'

    ipaddr1 = IPAddr.new "3ffe:505:2::1"
    p ipaddr1        #=> #<IPAddr: IPv6:3ffe:0505:0002:0000:0000:0000:0000:0001/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff>

    ipaddr3 = IPAddr.new "192.168.2.0/24"
    p ipaddr3        #=> #<IPAddr: IPv4:192.168.2.0/255.255.255.0>

### クラスメソッド

new(addr = '::', family = Socket::AF_UNSPEC)

  新しい IPAddr オブジェクトを生成します。addr は `address/prefixlen' や 'address/mask' などの形式も受け付けます。プリフィックス長やマスクが指定されると、 マスクされた IPAddr オブジェクトを返します。IPv6 アドレスの場合は、[ ] で 囲まれていてもかまいません。 family は自動的に判定されますが、明示的に指定することもできます。

new_ntoh(addr)

  ネットワークバイトオーダーのバイト列から IPAddr オブジェクトを生成します。

ntop(addr)

  ネットワークバイトオーダーのバイト列で表現された IP アドレスを人間の読める形式に変換します。

### メソッド

&(ipaddr)

  他の IPAddr オブジェクトとのビットごとの論理積により、新しい IPAddr オブジェクトを生成します。

|(ipaddr)

  他の IPAddr オブジェクトとのビットごとの論理和により、新しい IPAddr オブジェクトを生成します。

~

  ビットごとの論理否定により、新しい IPAddr オブジェクトを返します。

>>(num)

  ビットごとの右シフト演算により、新しい IPAddr オブジェクトを返します。

<<(num)

  ビットごとの左シフト演算により、新しい IPAddr オブジェクトを返します。

==(ipaddr)

  IPAddr オブジェクト同士が等しいかを比較します。

mask(a)

  マスクされた新しい IPAddr オブジェクトを返します。引数にはプリフィックス長とマスクの両方を受け付けます。(e.g. 8, 64, "255.255.255.0", etc.)

include?(ipaddr)

  与えられた IPAddr オブジェクトが自身の範囲に入っているかを判定します。

to_i

  整数に変換します。

to_s

  文字列に変換します。

to_string

  標準的な文字列表現に変換します。

hton

  ネットワークオーダーのバイト列に変換します。

ipv4?

  IPv4 なら真を返します。

ipv6?

  IPv6 なら真を返します。

ipv4_mapped?

  IPv4 組み込み IPv6 アドレスなら 真を返します。

ipv4_compat?

  IPv4 互換 IPv6 アドレスなら 真を返します。

ipv4_mapped

  IPv4 アドレスから IPv4 組み込み IPv6 アドレスの新しい IPAddr オブジェクトを返します。

ipv4_compat

  IPv4 アドレスから IPv4 互換 IPv6 アドレスの新しい IPAddr オブジェクトを返します。

native

  IPv4 組み込み IPv6 アドレスや IPv4 互換 IPv6 アドレスから、IPv4 アドレスの新しい IPAddr オブジェクトを返します。IPv4 互換でも IPv4 組み込みでもないなら自身を返します。

reverse

  DNS 逆引きのための文字列を返します。IPv6 なら RFC3172 で定義された形式で返します。

ip6_arpa

  IPv6 なら RFC3172 で定義された形式で DNS 逆引きのための文字列を返します。IPv4 の場合は例外を発生します。

ip6_int

  IPv6 なら RFC1886 互換形式で DNS 逆引きのための文字列を返します。IPv4 の場合は例外を発生します。

reverse link: [添付ライブラリ]