class

IPAddr

v2_6_3 - Show latest stable - Superclass: Object

IPAddr provides a set of methods to manipulate an IP address. Both IPv4 and IPv6 are supported.

Example

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>

p ipaddr1.to_s              #=> "3ffe:505:2::1"

ipaddr2 = ipaddr1.mask(48)  #=> #<IPAddr: IPv6:3ffe:0505:0002:0000:0000:0000:0000:0000/ffff:ffff:ffff:0000:0000:0000:0000:0000>

p ipaddr2.to_s              #=> "3ffe:505:2::"

ipaddr3 = IPAddr.new "192.168.2.0/24"

p ipaddr3                   #=> #<IPAddr: IPv4:192.168.2.0/255.255.255.0>

Included modules

  • Comparable

Constants

IN4MASK = 0xffffffff

IN6FORMAT = (["%.4x"] * 8).join(':')

IN6MASK = 0xffffffffffffffffffffffffffffffff

RE_IPV4ADDRLIKE = %r{\n\\A\n(\\d+) \\. (\\d+) \\. (\\d+) \\. (\\d+)\n\\z\n}x

RE_IPV6ADDRLIKE_COMPRESSED = %r{\n\\A\n( (?: (?: [\\da-f]{1,4} : )* [\\da-f]{1,4} )? )\n::\n( (?:\n( (?: [\\da-f]{1,4} : )* )\n(?:\n[\\da-f]{1,4}\n|\n(\\d+) \\. (\\d+) \\. (\\d+) \\. (\\d+)\n)\n)? )\n\\z\n}xi

RE_IPV6ADDRLIKE_FULL = %r{\n\\A\n(?:\n(?: [\\da-f]{1,4} : ){7} [\\da-f]{1,4}\n|\n( (?: [\\da-f]{1,4} : ){6} )\n(\\d+) \\. (\\d+) \\. (\\d+) \\. (\\d+)\n)\n\\z\n}xi

Attributes

[R]family

Files

  • lib/ipaddr.rb