internal static DhcpServerIpAddress FromNative(IntPtr pointer)
        {
            if (pointer == IntPtr.Zero)
            {
                throw new ArgumentNullException(nameof(pointer));
            }

            return(new DhcpServerIpAddress((uint)BitHelper.HostToNetworkOrder(Marshal.ReadInt32(pointer))));
        }
        public bool Equals(IPAddress other)
        {
            if (other == null || other.AddressFamily != System.Net.Sockets.AddressFamily.InterNetwork)
            {
                return(false);
            }

#pragma warning disable CS0618 // Type or member is obsolete
            var otherIp = (uint)other.Address;
#pragma warning restore CS0618 // Type or member is obsolete

            return(address == BitHelper.HostToNetworkOrder(otherIp));
        }
        public DhcpServerIpAddress(IPAddress address)
        {
            if (address.AddressFamily != System.Net.Sockets.AddressFamily.InterNetwork)
            {
                throw new ArgumentOutOfRangeException(nameof(address), "Only IPv4 addresses are supported");
            }

#pragma warning disable CS0618 // Type or member is obsolete
            var ip = (uint)address.Address;
#pragma warning restore CS0618 // Type or member is obsolete

            // DhcpServerIpAddress always stores in network order
            // IPAddress stores in host order
            this.address = BitHelper.HostToNetworkOrder(ip);
        }