Type: 
    	
      
        Class
      
    
        
        	
      	Constants:
    	
      
        
        
          
          	IN4MASK
        	:  
          
          	0xffffffff
        	
        
    
        
            
          32 bit mask for IPv4
          
          	IN6MASK
        	:  
          
          	0xffffffffffffffffffffffffffffffff
        	
        
    
        
            
          128 bit mask for IPv4
          
          	IN6FORMAT
        	:  
          
          	(["%.4x"] * 8).join(':')
        	
        
    
        
            
          Format string for IPv6
          
          	RE_IPV4ADDRLIKE
        	:  
          
          	%r{
\A
(\d+) \. (\d+) \. (\d+) \. (\d+)
\z
}x
        	
        
    
        
            
          Regexp internally used for parsing IPv4 address.
          
          	RE_IPV6ADDRLIKE_FULL
        	:  
          
          	%r{
\A
(?:
(?: [\da-f]{1,4} : ){7} [\da-f]{1,4}
|
( (?: [\da-f]{1,4} : ){6} )
(\d+) \. (\d+) \. (\d+) \. (\d+)
)
\z
}xi
        	
        
    
        
            
          Regexp internally used for parsing IPv6 address.
          
          	RE_IPV6ADDRLIKE_COMPRESSED
        	:  
          
          	%r{
\A
( (?: (?: [\da-f]{1,4} : )* [\da-f]{1,4} )? )
::
( (?:
( (?: [\da-f]{1,4} : )* )
(?:
[\da-f]{1,4}
|
(\d+) \. (\d+) \. (\d+) \. (\d+)
)
)? )
\z
}xi
        	
        
    
        
            
          Regexp internally used for parsing IPv6 address.
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>