diff --git a/src/Database/Persist/Net/PostgreSQL.hs b/src/Database/Persist/Net/PostgreSQL.hs
--- a/src/Database/Persist/Net/PostgreSQL.hs
+++ b/src/Database/Persist/Net/PostgreSQL.hs
@@ -20,6 +20,17 @@
 import Net.Mac (Mac)
 import qualified Data.Text as Text
 import qualified Net.IPv4.Text as IPv4Text
+import qualified Net.IPv4.ByteString.Char8 as IPv4ByteString
 
+instance PersistField IPv4 where
+  toPersistValue = toPersistValue . IPv4Text.encode
+  fromPersistValue v = case v of
+    PersistDbSpecific s -> case IPv4ByteString.decode s of
+      Just x -> Right x
+      Nothing -> Left (Text.pack "PersistValue IPv4: Invalid format")
+    _ -> Left (Text.pack "PersistValue IPv4: Not a PersistDbSpecific")
+
+instance PersistFieldSql IPv4 where
+  sqlType _ = SqlOther (Text.pack "inet")
 
 
diff --git a/src/Database/Persist/Net/Simple.hs b/src/Database/Persist/Net/Simple.hs
--- a/src/Database/Persist/Net/Simple.hs
+++ b/src/Database/Persist/Net/Simple.hs
@@ -24,9 +24,15 @@
   toPersistValue = toPersistValueTextShow IPv4Text.encode
   fromPersistValue = fromPersistValueTextRead IPv4Text.decode
 
+instance PersistFieldSql IPv4 where
+  sqlType _ = SqlString
+
 instance PersistField Mac where
   toPersistValue = toPersistValueTextShow MacText.encode
   fromPersistValue = fromPersistValueTextRead MacText.decode
+
+instance PersistFieldSql Mac where
+  sqlType _ = SqlString
 
 fromPersistValueTextRead :: (Text -> Maybe a) -> PersistValue -> Either Text a
 fromPersistValueTextRead fromText z = do
diff --git a/yesod-ip.cabal b/yesod-ip.cabal
--- a/yesod-ip.cabal
+++ b/yesod-ip.cabal
@@ -1,5 +1,5 @@
 name:                yesod-ip
-version:             0.1
+version:             0.2
 synopsis:            Code for using the ip package with yesod
 description:         Please see README.md
 homepage:            https://github.com/andrewthad/yesod-ip#readme
@@ -25,7 +25,7 @@
     , yesod-core
     , yesod-form
     , persistent
-    , ip == 0.4
+    , ip == 0.5
   default-language:    Haskell2010
 
 source-repository head
