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");
    }

}


          


Binary Data Receiver

   

/*
C# Network Programming 
by Richard Blum

Publisher: Sybex 
ISBN: 0782141765
*/

using System;
using System.Net;
using System.Net.Sockets;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;

public class BinaryDataRcvr
{
   public static void Main()
   {
      TcpListener server = new TcpListener(9050);
      server.Start();
      TcpClient client = server.AcceptTcpClient();
      NetworkStream strm = client.GetStream();
      IFormatter formatter = new BinaryFormatter();

      SerialEmployee emp1 = (SerialEmployee)formatter.Deserialize(strm);
      Console.WriteLine("emp1.EmployeeID = {0}", emp1.EmployeeID);
      Console.WriteLine("emp1.LastName = {0}", emp1.LastName);
      Console.WriteLine("emp1.FirstName = {0}", emp1.FirstName);
      Console.WriteLine("emp1.YearsService = {0}", emp1.YearsService);
      Console.WriteLine("emp1.Salary = {0}
", emp1.Salary);

      SerialEmployee emp2 = (SerialEmployee)formatter.Deserialize(strm);
      Console.WriteLine("emp2.EmployeeID = {0}", emp2.EmployeeID);
      Console.WriteLine("emp2.LastName = {0}", emp2.LastName);
      Console.WriteLine("emp2.FirstName = {0}", emp2.FirstName);
      Console.WriteLine("emp2.YearsService = {0}", emp2.YearsService);
      Console.WriteLine("emp2.Salary = {0}", emp2.Salary);
      strm.Close();
      server.Stop();
   }
}


[Serializable]
public class SerialEmployee
{
   public int EmployeeID;
   public string LastName;
   public string FirstName;
   public int YearsService;
   public double Salary;

   public SerialEmployee()
   {
      EmployeeID = 0;
      LastName = null;
      FirstName = null;
      YearsService = 0;
      Salary = 0.0;
   }
}