Feature #11210
closed
IPAddr has no public method to get the current subnet mask
Added by herwinw (Herwin Quarantainenet) over 9 years ago.
Updated almost 6 years ago.
Description
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.
Related issues
1 (1 open — 0 closed)
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
IPAddr.new(addr.mask_addr, addr.family).to_s
#mask_addr is also useful when doing subnetting operations which are beyond the scope of IPAddr.
- 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 https://github.com/ruby/ruby/pull/1269 for the patch.
- 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.
Any progress? I believe all the comments have been addressed.
- Status changed from Assigned to Closed
Also available in: Atom
PDF
Like0
Like0Like0Like0Like0Like0Like0Like0Like0