docs: public HostName toCanonicalHostName() {
  		HostName host = canonicalHost;
  		if(host == null) {
  			if(isMultiple()) {
  				throw new IncompatibleAddressException(this, "ipaddress.error.unavailable.numeric");
  			}
  			InetAddress inetAddress = toInetAddress();
  			String hostStr = inetAddress.getCanonicalHostName();//note: this does not return ipv6 addresses enclosed in brackets []
  			if(hostStr.equals(inetAddress.getHostAddress())) {
  				//we got back the address, so the host is me
  				host = new HostName(hostStr, new ParsedHost(hostStr, getProvider()));
  				host.resolvedAddress = this;
  			} else {
  				//the reverse lookup succeeded in finding a host string
  				//we might not be the default resolved address for the host, so we don't set that field
  				host = new HostName(hostStr);
  			}
  		}
  		return host;
  	}