const promiseDNSLookupPhysicalHost = new Promise((fnResolve, fnReject) => {
	dns.lookup(
		"physicalhost", 
		{family: 4}, 
		(error, strAddress) => {
			if(error)
			{
				fnReject(error);
			}
			else if(
				typeof strAddress !== "string" 
				|| !strAddress.length
				|| !rangeCheck.isV4(strAddress)
			)
			{
				const error = new Error(`
					Could not resolve 'physicalhost' to a single IPv4 address. 
					Fix your /etc/hosts or %SystemRoot%\\System32\\drivers\\etc\\hosts to contain this line: 
					192.168.137.1 physicalhost (or whatever private IP you currently have configured for your physical host's **Host-only networking**). 
					Actual DNS result: ${JSON.stringify(strAddress)}
				`.replace(/\s+/g, " "));
				//fnReject(error);
				
				console.error(error);
				fnResolve("192.168.137.1");
			}
			else if(strAddress === "0.0.0.0")
			{
				fnReject(new Error("Will not listen on 0.0.0.0 for security reasons."));
			}
			else if(!rangeCheck.inRange(strAddress, ["10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"]))
			{
				fnReject(new Error("Will not listen on the public IPv4 " + JSON.stringify(strAddress) + " address for security reasons. Must listen on the IPv4 address of the **Host-only** virtualization network."));
			}

			fnResolve(strAddress);
		}
	);
});