Enhancement: Add support for hostnames (and more robust IP checking, too!)

This fully addresses #105.