hid-examples-0.4: iplookup/LookupIP.hs
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"