The IPAddr library can classify address strings without sending network traffic.

IP Address Check

ip_address_check.rb
require "ipaddr"

address_text = 
address = IPAddr.new(address_text)

version = address.ipv4? ? "ipv4" : "ipv6"
loopback = address.loopback?
private_range = address.ipv4? && address.to_range.first.to_s.start_with?("192.168.")

puts "address=#{address_text}"
puts "version=#{version}"
puts "loopback=#{loopback}"
puts "private_range=#{private_range}"
require "ipaddr"

address_text = 
address = IPAddr.new(address_text)

version = address.ipv4? ? "ipv4" : "ipv6"
loopback = address.loopback?
private_range = address.ipv4? && address.to_range.first.to_s.start_with?("192.168.")

puts "address=#{address_text}"
puts "version=#{version}"
puts "loopback=#{loopback}"
puts "private_range=#{private_range}"
require "ipaddr"

address_text = 
address = IPAddr.new(address_text)

version = address.ipv4? ? "ipv4" : "ipv6"
loopback = address.loopback?
private_range = address.ipv4? && address.to_range.first.to_s.start_with?("192.168.")

puts "address=#{address_text}"
puts "version=#{version}"
puts "loopback=#{loopback}"
puts "private_range=#{private_range}"
ip address `IPAddr` parses an address and exposes whether it is IPv4 or IPv6.