module LookupIP where

import Data.List

import IPTypes
import ParseIP

lookupIP ::  IPRangeDB -> IP -> Bool
lookupIP (IPRangeDB ips) ip = case find (inRange ip) ips of
                    Nothing -> False
                    Just _ -> True
  where
    inRange ip (IPRange beg end) = beg <= ip && ip <= end

reportIPs :: IPRangeDB -> [IP] -> String
reportIPs iprdb = unlines . map go
  where
    go ip = show ip ++ ": " ++ yesno (lookupIP iprdb ip)
    yesno True = "YES"
    yesno False = "NO"