Sha256: f4015972bc3b0b442c16023c110dcbfe23f13cead16c0ff702dac63f287fcae5

Contents?: true

Size: 725 Bytes

Versions: 64

Compression:

Stored size: 725 Bytes

Contents

module Vagrant
  module Util
    module NetworkIP
      # Returns the network address of the given IP and subnet.
      #
      # @return [String]
      def network_address(ip, subnet)
        ip      = ip_parts(ip)
        netmask = ip_parts(subnet)

        # Bitwise-AND each octet to get the network address
        # in octets and join each part with a period to get
        # the resulting network address.
        ip.map { |part| part & netmask.shift }.join(".")
      end

      protected

      # Splits an IP into the four octets and returns each as an
      # integer in an array.
      #
      # @return [Array<Integer>]
      def ip_parts(ip)
        ip.split(".").map { |i| i.to_i }
      end
    end
  end
end

Version data entries

64 entries across 61 versions & 13 rubygems

Version Path
tamtam-vagrant-reload-1.1.3 vendor/cache/vagrant-0ac2a8738841/lib/vagrant/util/network_ip.rb
tamtam-vagrant-reload-1.1.2 vendor/cache/vagrant-0ac2a8738841/lib/vagrant/util/network_ip.rb
tamtam-vagrant-reload-1.1.1 vendor/cache/vagrant-0ac2a8738841/lib/vagrant/util/network_ip.rb
tamtam-vagrant-reload-1.1 vendor/cache/vagrant-0ac2a8738841/lib/vagrant/util/network_ip.rb
vagrant-cloudstack-1.1.0 vendor/bundle/bundler/gems/vagrant-1cf2a8db4ccb/lib/vagrant/util/network_ip.rb
vagrant-cloudstack-1.1.0 vendor/bundle/bundler/gems/vagrant-309e896975d1/lib/vagrant/util/network_ip.rb
vagrant-cloudstack-1.1.0 vendor/bundle/bundler/gems/vagrant-272fb27e0536/lib/vagrant/util/network_ip.rb
vagrant-cloudstack-1.1.0 vendor/bundle/bundler/gems/vagrant-b421af58e8b3/lib/vagrant/util/network_ip.rb
vagrant-tiktalik-0.0.3 vendor/bundle/ruby/2.0.0/bundler/gems/vagrant-1e28f1ac31e7/lib/vagrant/util/network_ip.rb
bmhatfield-vagrant-1.0.10 lib/vagrant/util/network_ip.rb
bmhatfield-vagrant-1.0.9 lib/vagrant/util/network_ip.rb
tnargav-1.3.6 lib/vagrant/util/network_ip.rb
tnargav-1.3.3 lib/vagrant/util/network_ip.rb
bmhatfield-vagrant-1.0.8 lib/vagrant/util/network_ip.rb
vagrant-shell-0.2.9 demo/templates/vendor/bundle/ruby/1.9.1/gems/tnargav-1.2.2/lib/vagrant/util/network_ip.rb
tnargav-1.2.3 lib/vagrant/util/network_ip.rb
vagrant-shell-0.2.8 demo/templates/vendor/bundle/ruby/1.9.1/gems/tnargav-1.2.2/lib/vagrant/util/network_ip.rb
bmhatfield-vagrant-1.0.7 lib/vagrant/util/network_ip.rb
vagrant-shell-0.2.6 vendor/bundle/gems/tnargav-1.2.2/lib/vagrant/util/network_ip.rb
vagrant-shell-0.2.5 vendor/bundle/gems/tnargav-1.2.2/lib/vagrant/util/network_ip.rb