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 の場合は例外を発生します。