/// <summary>
		///   Used to tell whether an address is a loopback.
		///   All IP addresses of the form 127.X.Y.Z, where X, Y, and Z are in 
		///   the range 0-255, are loopback addresses.
		/// </summary>
		/// <param name="addr">Address to compare</param>
		/// <returns></returns>
		public static bool IsLoopback(IPAddress addr) {
			if(addr.m_Family == AddressFamily.InterNetwork)
				return (addr.m_Address & 0xFF) == 127;
			else {
				for(int i=0; i<6; i++) {
					if(addr.m_Numbers[i] != 0)
						return false;
				}

				return NetworkToHostOrder((short)addr.m_Numbers[7]) == 1;
			}
		}
				static bool TryParse(string ipString, out IPAddress address) {
			if(ipString == null)
				throw new ArgumentNullException("ipString");

			if((address = ParseIPV4(ipString)) == null)
				if((address = ParseIPV6(ipString)) == null)
					return false;
			return true;
		}