Feature #11210

IPAddr has no public method to get the current subnet mask

Added by herwinw (Herwin Quarantainenet) almost 2 years ago. Updated 6 months ago.

Target version:


Both to_s and to_string omit the subnet mask of an IP address. The only way to query it via public methods is to manually parse the output of inspect.


#1 [ruby-core:69448] Updated by bjmllr (Ben Miller) almost 2 years ago

It would be useful to expose @mask_addr. I have done this at times by reopening IPAddr and adding an attr_reader. Then the string form of the mask can be obtained with,

#mask_addr is also useful when doing subnetting operations which are beyond the scope of IPAddr.

#2 [ruby-core:74095] Updated by Eregon (Benoit Daloze) about 1 year ago

  • Assignee set to knu (Akinori MUSHA)

Assigning this to the official maintainer of ipaddr.
Or should it be assigned to matz?

Could this be decided at the next Developer meeting or sooner?

See for the patch.

#3 [ruby-core:74927] Updated by knu (Akinori MUSHA) about 1 year ago

  • Status changed from Open to Assigned

Sorry for being inactive.

I've made some comments in the above PR.

I can't recall the exact reason why there's no access to the netmask provided, but one main design concept of IPAddr by the original author (Ume-san) was to allow manipulating IP addresses independent of what family each instance is in, so I'd welcome the PR in that it introduces an address family independent class for returning values.

Except for a few things I mentioned in the PR it looks good to merge, so please toss your feedback to it if you have any opinions. Thank you.

#4 [ruby-core:77761] Updated by herwin (Herwin W) 6 months ago

Any progress? I believe all the comments have been addressed.

Also available in: Atom PDF