示例#1
0
        public void IpV4AddressRandomTest()
        {
            Assert.AreEqual(IpV4Address.AllHostsGroupAddress, new IpV4Address("224.0.0.1"));

            Random random = new Random();

            for (int i = 0; i != 1000; ++i)
            {
                IpV4Address address = random.NextIpV4Address();

                Assert.AreEqual(address, new IpV4Address(address.ToString()));
                Assert.IsTrue(address == new IpV4Address(address.ToString()));
                Assert.IsFalse(address != new IpV4Address(address.ToString()));
                Assert.AreEqual(address.GetHashCode(), new IpV4Address(address.ToString()).GetHashCode());
                Assert.AreEqual(address, new IpV4Address(address.ToValue()));

                Assert.AreNotEqual(address, random.NextIpV4Address());
                Assert.IsFalse(address == random.NextIpV4Address());
                Assert.IsTrue(address != random.NextIpV4Address());
                Assert.AreNotEqual(address.GetHashCode(), random.NextIpV4Address().GetHashCode());

                Assert.AreNotEqual(2, address);
                Assert.IsFalse(address.Equals(null));
            }
        }
示例#2
0
        public static List <byte> GetBytesList(this IpV4Address address)
        {
            uint value = address.ToValue();

            byte[] array = BitConverter.GetBytes(value).Take(6).ToArray();
            return(array.Reverse().ToList());
        }
示例#3
0
 //public TcpAddress(IpV4Address address, ushort port)
 public TcpAddress(MacAddress macAddress, IpV4Address ipAddress, ushort port)
 {
     _macAddress   = macAddress;
     _ipAddress    = ipAddress;
     _port         = port;
     _addressValue = ipAddress.ToValue() + ((ulong)port << 32);
 }
示例#4
0
        public static byte[] GetBytes(this IpV4Address ipV4Address)
        {
            Debug.Assert(BitConverter.IsLittleEndian);

            var value     = ipV4Address.ToValue();
            var uintBytes = BitConverter.GetBytes(value);

            return(uintBytes);
        }
示例#5
0
        private static void Sationsip(string mac)
        {
            Console.WriteLine("neue ip: ");
            var         value0 = Console.ReadLine();
            IpV4Address ip4    = new IpV4Address(value0);
            var         i      = ip4.ToValue().ToString("X");
            var         g      = ip4.ToValue().ToString("X");

            Console.WriteLine("neue gateway: " + value0);

            Console.WriteLine("neue subnetz: ");
            var         value1    = Console.ReadLine();
            IpV4Address ipsubnetz = new IpV4Address(value1);
            var         s         = ipsubnetz.ToValue().ToString("X");

            var t = new Thread(() => { Recive(30, DefaultPacketHandler); });

            t.Start();
            SendSetRequest(mac, "0102", i + s + g);
        }
示例#6
0
        public static byte[] ToBytes(this IpV4Address address)
        {
            uint address_value = address.ToValue();

            return(new byte[]
            {
                (byte)(address_value >> 24 & 0xFF),
                (byte)(address_value >> 16 & 0xFF),
                (byte)(address_value >> 8 & 0xFF),
                (byte)(address_value & 0xFF),
            });
        }
        private bool IsInSubnetwork(ScanningOptions options)
        {
            List <DeviceAddress> addresses = options.Device.Addresses
                                             .Where(addr => addr.Address.Family == SocketAddressFamily.Internet)
                                             .ToList();

            if (addresses.Count > 0)
            {
                foreach (DeviceAddress address in addresses)
                {
                    IpV4Address mask             = address.GetMask();
                    IpV4Address localIP          = new IpV4Address(address.GetIP());
                    uint        subnetwork       = localIP.ToValue() & mask.ToValue();
                    uint        targetSubnetwork = options.TargetIP.ToValue() & mask.ToValue();
                    if (targetSubnetwork == subnetwork)
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
示例#8
0
        public static string zToFormatedString(this IpV4Address ipAddress)
        {
            uint add = ipAddress.ToValue();

            return(string.Format("{0:000}.{1:000}.{2:000}.{3:000}", (byte)((add & 0xFF000000) >> 24), (byte)((add & 0x00FF0000) >> 16), (byte)((add & 0x0000FF00) >> 8), (byte)(add & 0x000000FF)));
        }
示例#9
0
        internal static uint Sum16Bits(IpV4Address address)
        {
            uint num = address.ToValue();

            return((num >> 16) + (num & (uint)ushort.MaxValue));
        }
示例#10
0
文件: Helper.cs 项目: bmuthoga/dipw
 public static ReadOnlyCollection <byte> IpAddressToBytes(IpV4Address ipAddress)
 {
     return(Array.AsReadOnly(BitConverter.GetBytes(ipAddress.ToValue()).Reverse().ToArray()));
 }
示例#11
0
 internal static uint Sum16Bits(IpV4Address address)
 {
     return(Sum16Bits(address.ToValue()));
 }
 public static void Write(this byte[] buffer, ref int offset, IpV4Address value, Endianity endianity)
 {
     ByteArrayExtensions.Write(buffer, ref offset, value.ToValue(), endianity);
 }
示例#13
0
        internal static uint Sum16Bits(IpV4Address address)
        {
            uint value = address.ToValue();

            return((value >> 16) + (value & 0xFFFF));
        }
示例#14
0
 public override int GetHashCode()
 {
     return(((_ipAddress.ToValue().GetHashCode() ^ _port.GetHashCode()) as object).GetHashCode());
 }