• 6 hours
  • Hard

Free online content available in this course.

course.header.alt.is_certifying

Got it!

Last updated on 2/6/20

TP : Convertissez l'adresse IP ou l'URL d'un site avec un DNS

Log in or subscribe for free to enjoy all this course has to offer!

Dans ce TP, je vais vous demander d'utiliser l'objet InetAddress pour récupérer, en fonction de ce que vous allez saisir, soit l'adresse IP d'une adresse internet, soit le nom de domaine d'une adresse IP V4.

Votre mission, si vous l'acceptez...

... sera de créer quelque chose comme ça :

Rendu du programme
Rendu du programme

Certaines adresses IP ne renverront peut-être pas de nom de domaine, mais ce n'est pas grave. :)

Alors, à vos claviers !

Correction

Voici mon code en guise de correction. On pourrait apporter plein d’améliorations à ce code pour optimiser sa performance, mais pour l’instant, il assure le minimum vital demandé, ce qui est déjà pas mal ! :)

import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Scanner;


public class Lookup {

   public static void main(String[] args) {
     
      Scanner sc = new Scanner(System.in);

      while(true){
         System.out.println("---------------------------------------------------");
         System.out.println("Saisissez une adresse IPV4 ou un nom de domaine : ");
         System.out.println("---------------------------------------------------");
         String hote = sc.nextLine();
         if(hote.equalsIgnoreCase("fin")){
            break;
         }
         System.out.println("Voici le résultat trouvé : ");
         System.out.println(lookup(hote));
      }
      
      System.out.println("Fin du programme");
   }
   
   public static String lookup(String host){
      String result = "";
      
      try {
         //Il s'agit d'un nom de domaine et non d'une adresse IPV4
         if(host.matches("[a-zA-Z\\.]+")){
            result = InetAddress.getByName(host).getHostAddress();
         }
         //IP V4
         else{
            result = InetAddress.getByName(host).getHostName();  
         }
      } catch (UnknownHostException e) {
         return "Erreur : impossible de trouver une correspondance pour l'entrée " + host;
      }  
      return result;
   }
}

Voilà, ce TP n’était pas d’une difficulté extraordinaire, mais il vous aura fait pratiquer un peu histoire de vous échauffer les neurones pour la suite, continuons donc ! :) 

Example of certificate of achievement
Example of certificate of achievement