class TeamCymru::Bogon

This class implements the lookup of bogon via DNS

Public Instance Methods

bogon?(ip,fullbogon=true) click to toggle source

tests if the given ip is a bogon fullbogon flag selects which bogon list to use see www.team-cymru.org/Services/Bogons/dns.html for more details

# File lib/teamcymru/bogon.rb, line 17
def bogon?(ip,fullbogon=true)
        # detect if this is ipv4 or ipv6 or bad
        begin
                ip = IPAddr.new(ip)
                if ip.ipv6? and fullbogon
                        label = ip.to_string.gsub(/:/,'').split(//).reverse.join(".")+"."+@@v6fullbogon
                elsif ip.ipv4? and fullbogon
                        label = ip.to_s.split(/\./).reverse.join(".")+"."+@@v4fullbogon
                elsif ip.ipv4? and not fullbogon
                        label = ip.to_s.split(/\./).reverse.join(".")+"."+@@bogon
                else
                        puts "Unsupported combination: ipv4=#{ip.ipv4?} and fullbogon=#{fullbogon}"
                        return false
                end
                addr = Resolv.getaddress(label)
                if addr
                        return true
                else
                        return false
                end
        rescue ArgumentError => e
                puts e
                return false
        rescue Resolv::ResolvError
                return false
        end
end
Also aliased as: lookup
lookup(ip,fullbogon=true)
Alias for: bogon?