public IPv4(string IPAddress, IPv4Type ipType = IPv4Type.IPAddress) { switch (ipType) { default: case IPv4Type.IPAddress: this.IPAddress = IPAddress; eIPAddress = IP2sIP(IPAddress, IPv4Type.eIPAddress); kIPAddress = IP2sIP(IPAddress, IPv4Type.kIPAddress); break; case IPv4Type.eIPAddress: eIPAddress = IPAddress; IPAddress = sIP2IP(eIPAddress, ipType); kIPAddress = IP2sIP(IPAddress, IPv4Type.kIPAddress); break; case IPv4Type.kIPAddress: kIPAddress = IPAddress; IPAddress = sIP2IP(kIPAddress, IPv4Type.kIPAddress); eIPAddress = IP2sIP(IPAddress, IPv4Type.eIPAddress); break; } NumAddress = IP2Num(IPAddress); }
public object Read(IPv4Type pv4Type) { var ipv4bytes = reader.ReadBytes(4); Array.Reverse(ipv4bytes); return(new IPAddress(ipv4bytes)); }
public void Write(IPv4Type pv4Type, object value) { var address4 = ExtractIPAddress(value); if (address4.AddressFamily != System.Net.Sockets.AddressFamily.InterNetwork) { throw new ArgumentException($"Expected IPv4, got {address4.AddressFamily}"); } var ipv4bytes = address4.GetAddressBytes(); Array.Reverse(ipv4bytes); writer.Write(ipv4bytes, 0, ipv4bytes.Length); }
private static string GetBaseN(IPv4Type type) { string baseN; switch (type) { default: case IPv4Type.eIPAddress: baseN = BaseN_e; break; case IPv4Type.kIPAddress: baseN = BaseN_k; break; } return(baseN); }
public static string sIP2IP(string sIP, IPv4Type sIPType) { uint numAddress = (uint)BMath.BaseNToBase10(sIP, GetBaseN(sIPType)); return(Num2IP(numAddress)); }
public static string IP2sIP(string IP, IPv4Type sIPType) { return(BMath.Base10ToBaseN(IP2Num(IP), GetBaseN(sIPType))); }