C# Programmation Réseau: Résolution des DNS en CSharp

Author:



using System;
using System.Drawing;
using System.Net;
using System.Text;
using System.Windows.Forms;

public class AsyncResolve: Form {

   TextBox address;
   ListBox results;
   private AsyncCallback OnResolved;

   public AsyncResolve()
   {

      Text = "Résolution des DNS";
      Size = new Size(400,380);
      OnResolved = new AsyncCallback(Resolved);


      Label label1 = new Label();
      label1.Parent = this;
      label1.Text = "Tapez l'adresse ICI:";
      label1.AutoSize = true;
      label1.Location = new Point(10, 10);

      address = new TextBox();
      address.Parent = this;
      address.Size = new Size(200, 2 * Font.Height);
      address.Location = new Point(10, 35);

      results = new ListBox();
      results.Parent = this;
      results.Location = new Point(10, 65);
      results.Size = new Size(350, 20 * Font.Height);

      Button checkit = new Button();
      checkit.Parent = this;
      checkit.Text = "Resolue";
      checkit.Location = new Point(235,32);
      checkit.Size = new Size(7 * Font.Height, 2 * Font.Height);
      checkit.Click += new EventHandler(ButtonResolveOnClick);
   }

   void ButtonResolveOnClick(object obj, EventArgs ea)
   {
      results.Items.Clear();
      string addr = address.Text;
      Object state = new Object();

      Dns.BeginResolve(addr, OnResolved, state);
   }

   private void Resolved(IAsyncResult ar)
   {
      string buffer;

      IPHostEntry iphe = Dns.EndResolve(ar);

      buffer = "Host name: " + iphe.HostName;
      results.Items.Add(buffer);

      foreach(string alias in iphe.Aliases)
      {
         buffer = "Alias: " + alias;
         results.Items.Add(buffer);
      }
      foreach(IPAddress addrs in iphe.AddressList)
      {
         buffer = "Address: " + addrs.ToString();
         results.Items.Add(buffer);
      }
   }

   public static void Main()
   {
      Application.Run(new AsyncResolve());
   }
}