Sha256: d1625a6881b811b206466d0861117a82c7dcdcb66b8fd14dd25b526b20f31d87

Contents?: true

Size: 1.44 KB

Versions: 12

Compression:

Stored size: 1.44 KB

Contents

#!/usr/bin/env ruby
# Gets WAN IP, Lan IP, Router IP, and DNS Server.
# Compiles to a nice list.

require 'rest-client'
require 'socket'
require 'os'

def network_info
  # Grabs public WAN address.
  begin
    url = "https://api.ipify.org"
    response = RestClient.get(url)
  rescue
    puts "Can't find WAN"
    exit(1)
  end

  # Grabs assigned IP and formats it.
  begin
    lans = Socket.ip_address_list.select{|intf| intf.ipv4_private?}.map { |intf| intf.ip_address }
  rescue
    puts "Cant find LAN"
    exit(1)
  end

  # Greps either scutil or resolv.conf for DNS server.
  begin
    if OS.linux?
      dns = %x[cat /etc/resolv.conf | grep nameserver | head -1 | awk '{print$2}']
    elsif OS.mac?
      dns = %x[scutil --dns | grep nameserver | head -1 | awk '{print$3}']
    else
      puts "OS not supported!"
      exit(1)
    end
  rescue
    puts "Can't find DNS"
    exit(1)
  end

  # Greps netstat or ip route for router address.
  begin
    if OS.linux?
      router = %x[ip route | grep default | head -1 | awk '{print$3}']
    elsif OS.mac?
      router = %x[netstat -rn | grep default | head -1 | awk '{print$2}']
    else
      puts "OS not supported!"
      exit(1)
    end
  rescue
    puts "Can't find Router"
    exit(1)
  end

  puts
  puts "======================="
  puts "| WAN: #{response}"
  puts "| LAN(s): #{lans.join(', ')}"
  puts "| ROUTER: #{router}"
  puts "| DNS: #{dns}"
  puts "======================="
  puts
end

network_info

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
jake-scripts-1.9.2 exe/ip-list
jake-scripts-1.9.1 exe/ip-list
jake-scripts-1.9.0 exe/ip-list
jake-scripts-1.8.9 exe/ip-list
jake-scripts-1.8.8 exe/ip-list
jake-scripts-1.8.7 exe/ip_list
jake-scripts-1.8.6 exe/ip_list
jake-scripts-1.8.5 exe/ip_list
jake-scripts-1.8.4 exe/ip_list
jake-scripts-1.8.3 exe/ip_list
jake-scripts-1.8.2 exe/ip_list
jake-scripts-1.8.1 exe/ip_list