Поскольку большинство ответов не говорят о проверке IPV6, у меня была похожая проблема. Я решил это с помощью библиотеки Ruby Regex, как упомянул @wingfire.
Но я также использовал библиотеку Regexp, чтобы использовать ее метод union
, как описано здесь
У меня есть этот код для проверки:
validates :ip, :format => {
:with => Regexp.union(Resolv::IPv4::Regex, Resolv::IPv6::Regex)
}
Надеюсь, это кому-нибудь поможет!
Я сомневаюсь, что вы найдете все, что хотите, в одном инструменте. Я много занимаюсь разработкой, используя Postgresql, и по-прежнему считаю, что наиболее эффективен хороший текстовый редактор и инструмент командной строки psql.
На данный момент Navicat, кажется, производит лучшие инструменты для администрирования баз данных IMHO.
Ознакомьтесь с их бесплатной версией (премиум-версия с поддержкой нескольких баз данных, включая postgres или только версию postgres: ... для postgresql)