Whois adresse IP

Whois adresse IP

1 – Fonction de Whois

L’utilitaire permet d’indiquer à qui l’adresse IP sélectionnée est affectée. Pour cela, il va requêter les différents RIR sur le port TCP 43 afin de récupérer l’information demandée.

Vous pouvez requêter manuellement en tapant la commande suivante : « telnet whois.ripe.net 43 ». Puis vous saisissez l’Ip que vous désirez suivit de « entrée ». Vous verrez alors apparaître les informations contenues dans la database (attention au format de présentation). Il ne vous reste plus qu’à requêter les quatre serveurs Whois afin de déterminer où se trouve votre information.

2 – Les RIR

  • IANA
    whois iana logo
  • ICANN
    whois icann logo

L’IANA, Internet Assigned Numbers Agency, attribue les adresses IP aux différents RIR, Regional Internet Registry. Les attributions ont été divisées en 4 parties et attribuées aux instituts suivants. cependant, depuis 1998, Icann repris presque l’intégralité des fonction de l’Iana. Cette nouvelle organisation a été créée en octobre 1998 à l’initiative du gouvernement américain.

  • APNIC – Pour l’Asie et le Pacifique.
    whois apic logo
  • ARIN – Pour l’Amérique du Nord et l’Afrique sub-saharienne.
    whois arin logo
  • LACNIC – L’Amérique latine et quelques îles des Caraïbes.
    whois lacnic logo
  • RIPE NCC – L’Europe, le Moyen-Orient, l’Asie centrale, et les pays africains du nord de l’équateur.
    whois ripe logo

3 – Suivi du développement

3.1 – Problème restant

3.2 – RoadMap

  • Proposer la saisie d’un nom d’hôte au lieu d’une IP.
  • Choix du type d’objet Ripe.

3.3 – Suivi du projet

  • V1.3
    Intégration de la résolut du nom d’hôte saisie grâce à la fonction gethostbyname().
  • V1.2
    Depuis la migration sur l’hébergement OVH, le script reste bloqué dans la boucle $tampon = $tampon . fgets($socket, 1); Passage de la valeur de 1 à 1000 pour résoudre le problème.
  • V1.1
    Ecriture des paragraphes de fonctionnement
    Gestion des IP non géré pas le Ripe. Connexion aux serveurs whois.arin.net whois.apnic.net whois.registro.br nic.ad.jp
    Passage de la gestion des erreurs dans la fonction erreur($erreur,$opentable).
    Vérification supplémentaire du champ IP pour éviter la saisie du style .0 qui donnait 0.0.0.0
    Création du formulaire de saisie.
    Création du script basé sur le squelette scan.php.
    Récupération des donnée sur whois.ripe.net.
    Mise en forme de la reception en intégrant les retour « charriot ». $buffer2 = nl2br($buffer);

4 – Code source

<?

// ********************************************
// Nom du script : whois.php
// Auteur : SebF@frameIP.com.pas.de.spam
// Date de création : 17 Novembre 2003
// version : 1.3
// Licence : Ce script est libre de toute utilisation.
//           La seule condition existante est de faire référence au site http://www.frameip.com afin de respecter le travail d'autrui.
// ********************************************

// ********************************************
// Initiation des variables
// ********************************************
$whois_ip_demande=$_POST['ipaddress'];

// ********************************************
// Vérification des champs vide
// ********************************************
if (empty($whois_ip_demande))
            {
            $corp='Le Whois ne peux pas avoir lieu car le champ IP est vide.';
            include 'whois_affichage_launcher.php';
            exit(0);
            }

// ********************************************
// Résolution du nom et conformité de l'IP selectionné
// ********************************************
if (ip2long($whois_ip_demande)==-1)                                                // Si ce n'est pas une IP
            {
            $nom_correspondant=gethostbyname($whois_ip_demande); // Alors résolution du nom
            if ($nom_correspondant!=$whois_ip_demande)                      // Si il a résolut le nom
                        $whois_ip_demande=$nom_correspondant;                // Récupération de l'ip résolut
            else
                        {
                        $corp='Le Whois ne peux pas avoir lieu car le champ IP ne contient pas d\'adresse valide ou le nom n\'a pas pu être résolut.';
                        include 'whois_affichage_launcher.php';
                        exit(0);
                        }
            }          

// ********************************************
// Transforme les saisies tel que 10.10..4 en 10.10.0.4
// ********************************************
$inetaddr=ip2long($whois_ip_demande);
$whois_ip_demande=long2ip($inetaddr);

// ********************************************
// Appel de la fonction connexion
// ********************************************
$buffer=connexion("whois.ripe.net",$whois_ip_demande);
$serveur_ayant_repondu="whois.ripe.net";

// ********************************************
// Vérifie si on est sur le bon serveur
// ********************************************
if (eregi("www.iana.org", $buffer))
            {
            $buffer=connexion("whois.arin.net",$whois_ip_demande);
            $serveur_ayant_repondu = "whois.arin.net";
            }
elseif (eregi("whois.apnic.net", $buffer))
            {
            $buffer=connexion("whois.apnic.net",$whois_ip_demande);
            $serveur_ayant_repondu = "whois.apnic.net";
            }
elseif (eregi("whois.registro.br", $buffer))
            {
            $buffer=connexion("whois.registro.br",$whois_ip_demande);
            $serveur_ayant_repondu = "whois.registro.br";
            }
elseif (eregi("nic.ad.jp", $buffer))
            {
            $buffer=connexion("whois.nic.ad.jp",$whois_ip_demande);



////////////////////////////////////////////////////////////////////// A VOIR
            #/e suppresses Japanese character output from JPNIC
            $extra = "/e";

            $serveur_ayant_repondu = "whois.nic.ad.jp";
            }

// ********************************************
// Affichage du nom du serveur qui à rendu l'information
// ********************************************
$corp='<BR>';
$corp.='C\'est le serveur '.$serveur_ayant_repondu.' qui possède l\'information suivante :';
$corp.='<BR><br>';

// ********************************************
// Intégre les retours charriot
// ********************************************
$buffer2=nl2br($buffer);

// ********************************************
// Affiche le resultat
// ********************************************
$corp.=$buffer2;
include 'whois_affichage_launcher.php';

// ********************************************
// Foncvtion de connexion whois
// ********************************************
function connexion($serveur,$ip_recherche)
            {
            // ********************************************
            // Ouverture de la session TCP
            // ********************************************
            $socket=fsockopen($serveur, 43);
            
            if ($socket!=0) 
                        {
                        // ********************************************
                        // Envoi de l'IP demandé
                        // ********************************************
                        fwrite($socket, "$ip_recherche\n");
            
                        // ********************************************
                        // Receptionne dans buffer la réponse
                        // ********************************************
                        while (feof($socket)==0)
                                    $tampon = $tampon . fgets($socket, 1000); // Le . signifie concatenation
            
                        // ********************************************
                        // Ferme la session TCP
                        // ********************************************
                        fclose($socket);
                        }
            else
                        {
                        $corp='Impossible de se connecter sur le serveur '.$server.' via le port 43.';
                        include 'whois_affichage_launcher.php';
                        exit(0);
                        }
            
            return ($tampon);
            }

?>

5 – Suivi du document

Création et suivi de la documentation par _SebF

6 – Discussion autour du Whois adresse IP

Vous pouvez poser toutes vos questions, faire part de vos remarques et partager vos expériences à propos du Whois adresse IP. Pour cela, n’hésitez pas à laisser un commentaire ci-dessous :

Commentaire et discussion

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *