Beispiel #1
0
        public void RawAcknowledgePacket()
        {
            DHCPPacketBase p = DHCPPacketFactory.Read(RawData.Acknowledge);

            Assert.IsType(typeof(DHCPPacketBootReply), p);

            IPv4Address expectedClientIP = new IPv4Address(new byte[] { 0, 0, 0, 0 });
            IPv4Address expectedYourIP   = new IPv4Address(new byte[] { 192, 168, 0, 10 });
            IPv4Address expectedServerIP = new IPv4Address(new byte[] { 0, 0, 0, 0 });
            IPv4Address expectedRelayIP  = new IPv4Address(new byte[] { 0, 0, 0, 0 });

            Assert.True(EHardwareType.Ethernet == p.HardwareAddressType, "Address type wasn't Ethernet");
            Assert.True(6 == p.HardwareAddressLength, "Address length wasn't 6");
            Assert.True(0 == p.Hops, "Hops wasn't 0");
            Assert.True((uint)0x3d1e == p.TransactionID, string.Format("Transaction id was '{0:x}'", p.TransactionID));
            Assert.True(6 == p.HardwareAddressLength, "Address length wasn't 6");
            Assert.True(0 == p.Seconds, "Seconds wasn't 0");
            Assert.True(0 == p.Flags, "Flags wasn't 0");
            Assert.Equal(expectedClientIP.ToString(), p.ClientAddress.ToString());
            Assert.Equal(expectedYourIP.ToString(), p.YourAddress.ToString());
            Assert.Equal(expectedServerIP.ToString(), p.ServerAddress.ToString());
            Assert.Equal(expectedRelayIP.ToString(), p.RelayAgentAddress.ToString());

            HardwareAddress expectedHardwareAddress =
                new HardwareAddress(new MacAddress(new byte[] { 0x00, 0x0b, 0x82, 0x01, 0xfc, 0x42 }));

            byte[] expectedMac = expectedHardwareAddress.Address;
            byte[] actualMac   = p.ClientHardwareAddress.Address;

            for (int i = 0; i < expectedMac.Length; i++)
            {
                byte expected = expectedMac[i];
                byte actual   = actualMac[i];

                Assert.True(
                    expected == actual,
                    string.Format(
                        "Expected: '0x{0:x2}', Actual: '0x{1:x2}' at offset {2}. Expected: {3} Actual: {4}",
                        (byte)expected,
                        (byte)actual,
                        i,
                        expectedHardwareAddress,
                        p.ClientHardwareAddress));
            }

            Assert.Equal(new byte[64], p.ServerHostName);
            Assert.Equal(new byte[128], p.File);
        }
Beispiel #2
0
        public void RawAuthenticationOffer()
        {
            byte[]         b      = RawAuthenticationData.Offer;
            DHCPPacketBase packet = DHCPPacketFactory.Read(b);

            byte[] pb = packet.GetRawBytes();

            Assert.Equal(b.Length, pb.Length);

            for (int i = 0; i < b.Length; i++)
            {
                byte expected = b[i];
                byte actual   = pb[i];

                Assert.True(
                    expected == actual,
                    string.Format(
                        "Expected: '0x{0:x2}', Actual: '0x{1:x2}' at offset {2}.",
                        (byte)expected,
                        (byte)actual,
                        i));
            }
        }