Når nu jeg lige ser på det, er det vist ikke så enkelt. En Ip kan jo ikke have en værdi der hedder noget lignede 0.1.0.1. Derimod er 192.168.0.1 en gyldig adresse.
IPAddress.Parse(string ipAddr) er implementeret således:
public static IPAddress Parse(string ipString) { if (ipString == null) { throw new ArgumentNullException("ipString"); } if (ipString.IndexOf(':') != -1) { bool flag1 = Socket.SupportsIPv6; SocketAddress address1 = new SocketAddress(AddressFamily.InterNetworkV6, 0x1c); int num1 = UnsafeNclNativeMethods.OSSOCK.WSAStringToAddress(ipString, AddressFamily.InterNetworkV6, IntPtr.Zero, address1.m_Buffer, out address1.m_Size); if (num1 != 0) { throw new FormatException(SR.GetString("dns_bad_ip_address"), new SocketException()); } byte[] buffer1 = new byte[0x10]; long num2 = 0; for (int num3 = 0; num3 < 0x10; num3++) { buffer1[num3] = address1[num3 + 8]; } num2 = (((address1[0x1b] << 0x18) + (address1[0x1a] << 0x10)) + (address1[0x19] << 8)) + address1[0x18]; return new IPAddress(buffer1, num2); } int num4 = UnsafeNclNativeMethods.OSSOCK.inet_addr(ipString); if (((num4 == -1) && (string.Compare(ipString, "255.255.255.255", false, CultureInfo.InvariantCulture) != 0)) && ((string.Compare(ipString, "0xff.0xff.0xff.0xff", true, CultureInfo.InvariantCulture) != 0) && (string.Compare(ipString, "0377.0377.0377.0377", false, CultureInfo.InvariantCulture) != 0))) { throw new FormatException(SR.GetString("dns_bad_ip_address")); } return new IPAddress(num4); }
Måske dækker den dit behov, måske ikke, men den er ihvertfald bedre end bare at tjekke om værdierne er mellem 0 og 255.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.