diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | lib/ipaddr.rb | 16 |
2 files changed, 21 insertions, 0 deletions
@@ -1,3 +1,8 @@ +Sun May 22 11:21:41 2011 Eric Hodel <[email protected]> + + * lib/ipaddr.rb: Improve documentation. Patch by Sandor Szucs. + [Ruby 1.9 - Bug #4753] + Sun May 22 11:14:40 2011 Eric Hodel <[email protected]> * lib/forwardable.rb: Document def_delegator. Patch by Sandor Szucs. diff --git a/lib/ipaddr.rb b/lib/ipaddr.rb index 317f5c9458..b6e7dad918 100644 --- a/lib/ipaddr.rb +++ b/lib/ipaddr.rb @@ -19,6 +19,7 @@ require 'socket' unless Socket.const_defined? "AF_INET6" class Socket < BasicSocket + # IPv6 protocol family AF_INET6 = Object.new end @@ -51,6 +52,14 @@ unless Socket.const_defined? "AF_INET6" end alias getaddress_orig getaddress + + # Returns a +String+ based representation of a valid DNS hostname, + # IPv4 or IPv6 address. + # + # IPSocket.getaddress 'localhost' #=> "::1" + # IPSocket.getaddress 'broadcasthost' #=> "255.255.255.255" + # IPSocket.getaddress 'www.ruby-lang.org' #=> "221.186.184.68" + # IPSocket.getaddress 'www.ccc.de' #=> "2a00:1328:e102:ccc0::122" def getaddress(s) if valid?(s) s @@ -86,8 +95,11 @@ end class IPAddr + # 32 bit mask for IPv4 IN4MASK = 0xffffffff + # 128 bit mask for IPv4 IN6MASK = 0xffffffffffffffffffffffffffffffff + # Formatstring for IPv6 IN6FORMAT = (["%.4x"] * 8).join(':') # Returns the address family of this IP address. @@ -377,6 +389,9 @@ class IPAddr protected + # Set +@addr+, the internal stored ip address, to given +addr+. The + # parameter +addr+ is validated using the first +family+ member, + # which is +Socket::AF_INET+ or +Socket::AF_INET6+. def set(addr, *family) case family[0] ? family[0] : @family when Socket::AF_INET @@ -397,6 +412,7 @@ class IPAddr return self end + # Set current netmask to given mask. def mask!(mask) if mask.kind_of?(String) if mask =~ /^\d+$/ |