IP アドレスを扱うのためのクラスです。
例:
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
[permalink][rdoc]新しい IPAddr オブジェクトを生成します。
new_ntoh(addr) -> IPAddr
[permalink][rdoc]ネットワークバイトオーダーのバイト列から IPAddr オブジェクトを生成します。
例:
require 'ipaddr' p IPAddr.new_ntoh("\300\250\001\001") # => <IPAddr: IPv4:192.168.1.1/255.255.255.255>
ntop(addr) -> String
[permalink][rdoc]ネットワークバイトオーダーのバイト列で表現された IP アドレスを人間の読める形式に変換します。
self & ipaddr -> IPAddr
[permalink][rdoc]他の IPAddr オブジェクトとのビットごとの論理積により、新しい IPAddr オブジェクトを生成します。
self << num -> IPAddr
[permalink][rdoc]ビットごとの左シフト演算により、新しい IPAddr オブジェクトを生成します。
self <=> other -> Integer | nil
[permalink][rdoc]self と other を比較します。
[SEE_ALSO] Integer#<=>
self == ipaddr -> bool
[permalink][rdoc]IPAddr オブジェクト同士が等しいかを比較します。
例:
require "ipaddr" p IPAddr.new("192.168.0.1") == IPAddr.new("192.168.0.1/24") # => false
include?(ipaddr) -> bool
[permalink][rdoc]self === ipaddr -> bool
与えられた IPAddr オブジェクトが自身の範囲に入っているかを判定します。
self >> num -> IPAddr
[permalink][rdoc]ビットごとの右シフト演算により、新しい IPAddr オブジェクトを生成します。
eql?(other) -> bool
[permalink][rdoc]自身が other と等しい場合は真を返します。そうでない場合は偽を返します。
[SEE_ALSO] Object#eql?
family -> Integer
[permalink][rdoc]このオブジェクトのアドレスファミリを返します。
[SEE_ALSO] Socket
hash -> Integer
[permalink][rdoc]ハッシュ値を返します。
[SEE_ALSO] Object#hash
hton -> String
[permalink][rdoc]ネットワークオーダーのバイト列に変換します。
inspect -> String
[permalink][rdoc]オブジェクトを人間が読める形式に変換した文字列を返します。
ip6_arpa -> String
[permalink][rdoc]IPv6 なら [RFC3172] で定義された形式で DNS 逆引きのための文字列を返します。 IPv4 の場合は例外を発生します。
ip6_int -> String
[permalink][rdoc]IPv6 なら [RFC1886] 互換形式で DNS 逆引きのための文字列を返します。 IPv4 の場合は例外を発生します。
ipv4? -> bool
[permalink][rdoc]IPv4 なら真を返します。
ipv4_compat -> IPAddr
[permalink][rdoc]IPv4 アドレスから IPv4 互換 IPv6 アドレスの新しい IPAddr オブジェクトを返します。
ipv4_compat? -> bool
[permalink][rdoc]IPv4 互換 IPv6 アドレスなら 真を返します。
ipv4_mapped -> IPAddr
[permalink][rdoc]IPv4 アドレスから IPv4 射影 IPv6 アドレスの新しい IPAddr オブジェクトを返します。
ipv4_mapped? -> bool
[permalink][rdoc]IPv4 射影 IPv6 アドレスなら 真を返します。
ipv6? -> bool
[permalink][rdoc]IPv6 なら真を返します。
mask(prefixlen) -> IPAddr
[permalink][rdoc]マスクされた新しい IPAddr オブジェクトを返します。引数にはプリフィックス長とマスクの両方を受け付けます (e.g. 8, 64, "255.255.255.0")。
mask!(mask) -> self
[permalink][rdoc]与えられた mask を使用してこのオブジェクトの IP アドレスを破壊的に変更します。
native -> self | IPAddr
[permalink][rdoc]IPv4 射影 IPv6 アドレスや IPv4 互換 IPv6 アドレスから、 IPv4 アドレスの新しい IPAddr オブジェクトを返します。 IPv4 互換でも IPv4 組み込みでもないなら self を返します。
例:
require "ipaddr" p IPAddr.new("0000:0000:0000:0000:0000:ffff:c0a8:0001").native # => #<IPAddr: IPv4:192.168.0.1/255.255.255.255>
reverse -> String
[permalink][rdoc]DNS 逆引きのための文字列を返します。 IPv6 なら [RFC3172] で定義された形式で返します。
例:
require "ipaddr" p IPAddr.new("192.168.0.1").reverse # => "1.0.168.192.in-addr.arpa"
set(addr, *family) -> self
[permalink][rdoc]このオブジェクトの IP アドレスとアドレスファミリをセットして自身を返します。
succ -> IPAddr
[permalink][rdoc]次の IPAddr オブジェクトを返します。
require 'ipaddr' ipaddr = IPAddr.new('192.168.1.1') p ipaddr.succ.to_s #=> "192.168.1.2"
to_i -> Integer
[permalink][rdoc]整数に変換します。
例:
require "ipaddr" p IPAddr.new("0.0.1.0").to_i # => 256
to_range -> Range
[permalink][rdoc]self の IP アドレスとサブネットマスクで取得できる IP アドレスの範囲を Range オブジェクトとして返します。
例:
require 'ipaddr' IPAddr.new('192.168.1.1').to_range #=> #<IPAddr: IPv4:192.168.1.1/255.255.255.255>..#<IPAddr: IPv4:192.168.1.1/255.255.255.255> IPAddr.new('::1').to_range #=> #<IPAddr: IPv6:0000:0000:0000:0000:0000:0000:0000:0001/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff>.. # #<IPAddr: IPv6:0000:0000:0000:0000:0000:0000:0000:0001/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff>
to_s -> String
[permalink][rdoc]文字列に変換します。
require 'ipaddr' addr6 = IPAddr.new('::1') addr6.to_s #=> "::1" addr6.to_string #=> "0000:0000:0000:0000:0000:0000:0000:0001"
[SEE_ALSO] IPAddr#to_string
to_string -> String
[permalink][rdoc]標準的な文字列表現に変換します。
require 'ipaddr' addr6 = IPAddr.new('::1') addr6.to_s #=> "::1" addr6.to_string #=> "0000:0000:0000:0000:0000:0000:0000:0001"
[SEE_ALSO] IPAddr#to_s
self | ipaddr -> IPAddr
[permalink][rdoc]他の IPAddr オブジェクトとのビットごとの論理和により、新しい IPAddr オブジェクトを生成します。
~ self -> IPAddr
[permalink][rdoc]ビットごとの論理否定により、新しい IPAddr オブジェクトを生成します。
IN4MASK -> Integer
[permalink][rdoc]IPv4 アドレスの場合に使用するマスク値。
0xffffffff
IN6FORMAT -> String
[permalink][rdoc]IPv6 アドレスをわかりやすく表示するためのフォーマット文字列。
"%.4x:%.4x:%.4x:%.4x:%.4x:%.4x:%.4x:%.4x"
IN6MASK -> Integer
[permalink][rdoc]IPv6 アドレスの場合に使用するマスク値。
0xffffffffffffffffffffffffffffffff