Is there a good high level library that can be used for IP address manipulation? I need to do things like:

Given a string find out if it is a valid IPv4/IPv6 address.
Have functionality like ntop and pton
etc

I can use the low level inet_ntop() etc. But is there a better library that handles these better and fast (c/c++/python)?
I have the mind boogling ipv4 / ipv6 validating regexps around, which are quite long and non-trivial to produce. I can share if you want.
Efficient IP address c/c++ library on unix