Page d'acceuil

Informatique > C# > Exemples simples

Résolveur de noms d'hôtes (obtention d'adresses IP):

L'utilisateur peut choisir parmi les nom d'hôtes prédéfinis, ou bien spécifier un nom qui sera également ajouté à la liste.
Voici d'abord l'ajout d'un nouveau nom d'hôte, après avoir appuyé sur <Enter>:

private void cbHote_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if ((Keys)e.KeyChar == Keys.Enter)
{
cbHote.Items.Add (cbHote.Text); // ajout du nom d'hôte
cbHote.SelectedIndex = cbHote.Items.Count - 1; // sélection du nom dans la liste
cbHote.SelectionLength = cbHote.Text.Length; // sélection du nom en vue d'en spécifier un autre
e.Handled = true; // événement traité
}
}

 

Voici le code principal qui permet de récupérer la liste des adresses IP correspondant au nom d'hôte:

private void cbHote_SelectedIndexChanged(object sender, System.EventArgs e)
{
try // résolution du nom d'hôte spécifié
{
IPHostEntry ipadr = Dns.Resolve (cbHote.SelectedItem.ToString());
cbHote.Text = cbHote.SelectedItem.ToString();
string ip = ipadr.AddressList[0].ToString();
    listBox1.Items.Clear();                             // vidage du listBox
    listBox1.Items.AddRange (ipadr.AddressList);        // ajout des adresses IP
    txtIP.Text = ip;                                    // affichage de l'adresse IP principale
  }
  catch             // Hôte non trouvé
  {
    MessageBox.Show(this,"Résolution impossible.","Erreur",MessageBoxButtons.OK,MessageBoxIcon.Error);
  }
}

 

Le code suivant permet d'afficher dans un navigateur l'URL correspondant au label situé en bas à gauche de la fenêtre:

private void linkLabel1_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
{
System.Diagnostics.Process.Start(linkLabel1.Text);
}

Remarque: ne pas oublier d'ajouter using System.Net; au début du code source: