Bear in mind that a lot of people will have dynamic IP addresses - and in some office NAT networks several computers can share the same IP address.
I suspect that you won't get zip code level info with dynamic IPs.
Both the above also could have implications for a user ID system which uses IP: with a dynamic IP you can't identify users by IP except on a per-session basis; with a NAT network you can't identify individual users on the network by IP at all.