|
|
Whois
par _SebF
1 - Fonction de Whois
2 - Les RIR
3 - Liste des affectations
4 - A propos de
5 - Suivi du développement
5.1 -
Problème restant
5.2 -
RoadMap
5.3 -
Suivi du projet
6 - Code source
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.
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 |
www.apnic.net |
Pour l'Asie et le Pacifique. |
| |

|
ARIN |
www.arin.net |
Pour l'Amérique du Nord et l'Afrique sub-saharienne. |
| |
 |
LACNIC |
www.lacnic.net |
L'Amérique latine et quelques îles des Caraïbes. |
| |

|
RIPE NCC |
www.ripe.net |
L'Europe, le Moyen-Orient, l'Asie centrale, et les pays africains du
nord de l'équateur. |
Voici la liste des affections IPv4 et v6 classés par network IP.
-
Adressage Ipv4
-
Multicast Ipv4
-
Adressage Ipv6
-
Multicast
Ipv6
|
Version |
Version 1.3 |
|
Date de création |
17 Novembre 2003 |
|
Dernière modification |
05 Avril 2004 |
|
Auteur |
_SebF |
Posez vos questions,
remarques, demande d'évolution et retour d'expérience sur le
Forum dédié aux outils
- Proposer la saisie d'un nom d'hôte
au lieu d'une IP.
- Choix du type d'objet Ripe.
|
2004.04.05 |
V1.3 |
- Intégration de la résolut du nom d'hôte saisie grâce à la
fonction gethostbyname(). |
|
2003.11.22 |
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. |
|
2003.11.19 |
V1.1 |
- Ecriture des paragraphes de fonctionnement |
|
2003.11.18 |
V1.1 |
- Gestion des IP non géré pas le Ripe. Connexion aux serveurs
whois.arin.net whois.apnic.net whois.registro.br nic.ad.jp |
|
2003.11.18 |
V1.1 |
- 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 |
|
2003.11.17 |
V1.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); |
|
<?
// ********************************************
// 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);
}
?> |
|
|