NetworkPackets.Dns.DnsPacket.PtrMemBlockToString C# (CSharp) Method

PtrMemBlockToString() public static method

Takes in a memblock containing dns ptr data ... d.c.b.a.in-addr.arpa ... and returns the IP Address as a string.
public static PtrMemBlockToString ( MemBlock ptr ) : String
ptr MemBlock The block containing the dns ptr data.
return String
    public static String PtrMemBlockToString(MemBlock ptr) {
      String name = HostnameMemBlockToString(ptr);
      String[] res = name.Split('.');
      name = String.Empty;
        /* The last 2 parts are the pointer IN-ADDR.ARPA, the rest is 
        * reverse notation, we don't bother the user with this.
        */
      for(int i = res.Length - 3; i > 0; i--) {
        try {
          Byte.Parse(res[i]);
        }
        catch {
          throw new Exception("Invalid IP Ptr");
        }
        name += res[i] + ".";
      }
      name += res[0];
      return name;
    }

Usage Example

Exemplo n.º 1
0
        public void TestPtr()
        {
            String   ptr  = "64.233.169.104";
            MemBlock ptrm = MemBlock.Reference(new byte[] { 0x03, 0x31, 0x30, 0x34,
                                                            0x03, 0x31, 0x36, 0x39, 0x03, 0x32, 0x33, 0x33, 0x02, 0x36, 0x34, 0x07,
                                                            0x69, 0x6e, 0x2d, 0x61, 0x64, 0x64, 0x72, 0x04, 0x61, 0x72, 0x70, 0x61,
                                                            0x00 });

            Assert.AreEqual(ptr, DnsPacket.PtrMemBlockToString(ptrm),
                            "PtrMemBlockToString");
            Assert.AreEqual(ptrm, DnsPacket.PtrStringToMemBlock(ptr),
                            "PtrStringToMemBlock");
            Assert.AreEqual(ptr, DnsPacket.PtrMemBlockToString(
                                DnsPacket.PtrStringToMemBlock(ptr)),
                            "Ptr String dual");
            Assert.AreEqual(ptrm, DnsPacket.PtrStringToMemBlock(
                                DnsPacket.PtrMemBlockToString(ptrm)),
                            "Ptr MemBlock dual");
        }
All Usage Examples Of NetworkPackets.Dns.DnsPacket::PtrMemBlockToString