/// <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; }