Using DsmlSoapHttpConnection

   
 
using System;
using System.Net;
using System.DirectoryServices;
using System.DirectoryServices.Protocols;

public class MainClass {
    public static void Main() {
        Uri uri = new Uri("http://yourSite:8080/dsml3");
        DsmlDirectoryIdentifier identifier = new DsmlDirectoryIdentifier(uri);

        NetworkCredential credentials = new NetworkCredential();
        credentials.UserName = @"explorercnagel";
        credentials.Password = "password";

        DsmlSoapHttpConnection dsmlConnection = new DsmlSoapHttpConnection(identifier);

        string baseDN = null; 
        string ldapSearchFilter = "(objectClass=*)";
        string[] attributesToReturn = null;

        SearchRequest searchRequest = new SearchRequest(baseDN, ldapSearchFilter,System.DirectoryServices.Protocols.SearchScope.Base, attributesToReturn);
        SearchResponse searchResponse = (SearchResponse)dsmlConnection.SendRequest(searchRequest);

        foreach (SearchResultEntry entry in searchResponse.Entries) {
            DirectoryAttribute attribute = entry.Attributes["schemaNamingContext"];
            Console.WriteLine(attribute.Name + "=" + attribute[0]); 
            foreach (DirectoryAttribute attr in entry.Attributes.Values) {
                Console.Write(attr.Name + "=");
                foreach (object value in attr) {
                    Console.Write(value + "  ");
                }
            }
        }
    }
}

    


Using DsmlDirectoryIdentifier

   
 
using System;
using System.Net;
using System.DirectoryServices;
using System.DirectoryServices.Protocols;

public class MainClass {
    public static void Main() {
        Uri uri = new Uri("http://yourSite/dsml1");
        DsmlDirectoryIdentifier identifier = new DsmlDirectoryIdentifier(uri);

        NetworkCredential credentials = new NetworkCredential();
        credentials.UserName = "yourName";
        credentials.Password = "password";

        DsmlSoapHttpConnection connection = new DsmlSoapHttpConnection(identifier, credentials);
        connection.BeginSession();

        string distinguishedname = "yourName";
        string ldapFilter = "object=user";
        string[] attributes = new string[1];

        DirectoryRequest request = new SearchRequest(distinguishedname, ldapFilter, System.DirectoryServices.Protocols.SearchScope.Subtree, null);

        DirectoryResponse response = connection.SendRequest(request);


        connection.EndSession();
    }

}

    


Find DNS Servers from Registry

   



using System;
using Microsoft.Win32;
class FindDNSServers {
    public static void Main() {
        RegistryKey start = Registry.LocalMachine;
        string DNSservers = @"SYSTEMCurrentControlSetServicesTcpipParameters";
        RegistryKey DNSserverKey = start.OpenSubKey(DNSservers);
        if (DNSserverKey == null) {
            Console.WriteLine("Unable to open DNS servers key");
            return;
        }
        string serverlist = (string)DNSserverKey.GetValue("NameServer");
        Console.WriteLine("DNS Servers: {0}", serverlist);
        DNSserverKey.Close();
        start.Close();
        char[] token = new char[1];
        token[0] = ' ';
        string[] servers = serverlist.Split(token);
        foreach (string server in servers) {
            Console.WriteLine("DNS server: {0}", server);
        }
    }
}

          


Get DNS Address Info

   


using System;
using System.Net;

public class GetDNSAddressInfo {
   public static void Main(string[] argv) {
      if (argv.Length != 1) {
         Console.WriteLine("Usage: GetDNSAddressInfo address");
         return;
      }

      IPAddress test = IPAddress.Parse(argv[0]);

      IPHostEntry iphe = Dns.GetHostByAddress(test);

      Console.WriteLine("Information for {0}",
                     test.ToString());

      Console.WriteLine("Host name: {0}", iphe.HostName);
      foreach(string alias in iphe.Aliases)
      {
         Console.WriteLine("Alias: {0}", alias);
      }
      foreach(IPAddress address in iphe.AddressList)
      {
         Console.WriteLine("Address: {0}", address.ToString());
      }
   }
}

           
          


Find DNS Servers

   


using System;
using Microsoft.Win32;

public class FindDNSServers
{
   public static void Main()
   {
      RegistryKey start = Registry.LocalMachine;
      string DNSservers = @"SYSTEMCurrentControlSetServicesTcpipParameters";

      RegistryKey DNSserverKey = start.OpenSubKey(DNSservers);
      if (DNSserverKey == null)
      {
         Console.WriteLine("Unable to open DNS servers key");
         return;
      }
  
      string serverlist = (string)DNSserverKey.GetValue("NameServer");

      Console.WriteLine("DNS Servers: {0}", serverlist);
      DNSserverKey.Close();
      start.Close();

      char[] token = new char[1];
      token[0] = ' ';
      string[] servers = serverlist.Split(token);

      foreach(string server in servers)
      {
         Console.WriteLine("DNS server: {0}", server);
      }
   }
}


           
          


DNS Name Resolution

   

using System;
using System.Net;

public class DNSNameResolution
{
  [STAThread]
  static void Main(string[] args)
  {
    IPHostEntry MyHost = Dns.Resolve(args[0]);

    foreach (IPAddress MyIP in MyHost.AddressList)
    {
      Console.WriteLine(MyIP.Address);
    }
  }
}

           
          


DNS Reverse Lookup and Lookup

   




using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
//DnsLookup
class Program {
    static void Output(IPHostEntry ipHostEntry) {
        Console.WriteLine("Host: {0}", ipHostEntry.HostName);
        Console.WriteLine("
Aliases:");
        foreach (string alias in ipHostEntry.Aliases) {
            Console.WriteLine(alias);
        }

        Console.WriteLine("
Address(es):");
        foreach (IPAddress address in ipHostEntry.AddressList) {
            Console.WriteLine("Address: {0}", address.ToString());
        }
        Console.ReadLine();
    }

    static void Lookup(string hostname) {
        IPHostEntry ipHostEntry = Dns.GetHostByName(hostname);

        Output(ipHostEntry);
    }

    static void ReverseLookup(string address) {
        IPHostEntry ipHostEntry = Dns.GetHostByAddress(address);
        Output(ipHostEntry);
    }

    static void Main(string[] args) {


        Lookup("www.microsoft.com");
        ReverseLookup("172.18.1.1");
    }

}