Skip to content

Instantly share code, notes, and snippets.

@inoueissei
Created October 30, 2015 07:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save inoueissei/d13cf28f63fb29f64905 to your computer and use it in GitHub Desktop.
Save inoueissei/d13cf28f63fb29f64905 to your computer and use it in GitHub Desktop.
require 'netaddr'
netaddr1 = NetAddr::CIDR.create('192.168.1.0/24')
# broadcastアドレスを算出
bc_address = netaddr1.last
# 数値化して1引く
gateway_int = NetAddr::CIDR.create(bc_address).to_i - 1
# その数値をアドレス表記に戻す
gateway = NetAddr.i_to_ip(gateway_int)
# /24部分だけを抽出
netmask = netaddr1.netmask
p bc_address
# => "192.168.1.255"
p gateway
# "192.168.1.254"
puts gateway + netmask
# => 192.168.1.254/24
require 'netaddr'
netaddr1 = NetAddr::CIDR.create('192.168.1.0/24')
netaddr2 = NetAddr::CIDR.create('192.168.1.1 255.255.0.0')
netaddr3 = NetAddr::CIDR.create('192.168.1.1 255.255.255.0')
netaddr4 = NetAddr::CIDR.create('224.0.0.1')
p netaddr1.bits
# => 24
p netaddr2.broadcast
# => "192.168.255.255"
p netaddr3.netmask
# => "/24"
p netaddr3.network
# => "192.168.1.0"
p netaddr3.subnet
# => ["192.168.1.0/25", "192.168.1.128/25"]
p netaddr1.arpa
# => "1.168.192.in-addr.arpa."
p netaddr1.cmp('192.168.0.0/16')
# => -1
p netaddr2.desc
# => "192.168.0.0/16"
#p netaddr1.enumerate
# => ["192.168.1.0", ..... , "192.168.1.255"]とダーッと出る
p netaddr2.ip
# => "192.168.1.1"
p netaddr2.last
# => "192.168.255.255"
p netaddr4.multicast_mac
# => "01-00-5e-00-00-01"
p netaddr1.next_ip
# => "192.168.2.0"
p netaddr1.next_subnet
# => "192.168.2.0/24"
p netaddr3.to_i
# => 3232235776
p NetAddr.i_to_ip(3232235776)
# => "192.168.1.0"
p netaddr1.to_s
# => "192.168.1.0/24"
p netaddr1.wildcard_mask
# => "255.255.255.0"
p netaddr1.hostmask_ext
# => "0.0.0.255"
p netaddr1.netmask_ext
# => "255.255.255.0"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment