// ********************************************
// 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.
// ********************************************
// ********************************************
// Affichage de l'entete html
// ********************************************
echo
'
FrameIP, Pour ceux qui aiment IP - Script Whois
';
// ********************************************
// Initiation des variables
// ********************************************
$whois_ip_demande=$_POST['ipaddress'];
// **********************************************
// Enregistrement du compteur
// **********************************************
include '../variables.php';
$info_compteur1=$whois_ip_demande;
$info_compteur2="";
$info_compteur3="";
$specifiez_le_nom_du_compteur="index.php";
include '../compteur.php';
// ********************************************
// Vérification des champs vide
// ********************************************
if (empty($whois_ip_demande))
whois_erreur(1);
// ********************************************
// 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
whois_erreur(2);
}
// ********************************************
// Transforme les saisies tel que 10.10..4 en 10.10.0.4
// ********************************************
$inetaddr=ip2long($whois_ip_demande);
$whois_ip_demande=long2ip($inetaddr);
// ********************************************
// Présentation des résultats
// ********************************************
echo '
Whois
Voici les résultats du whois pour l\'adresse IP '.$whois_ip_demande.'
';
// ********************************************
// 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
// ********************************************
echo ' ';
echo 'C\'est le serveur '.$serveur_ayant_repondu.' qui possède l\'information suivante :';
echo '
';
// ********************************************
// Intégre les retours charriot
// ********************************************
$buffer2 = nl2br($buffer);
// ********************************************
// Affiche le resultat
// ********************************************
echo $buffer2;
// ********************************************
// Fin du script général
// ********************************************
fin_du_script();
// ********************************************
// Fonction 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
// ********************************************
// Sortie du script
// ********************************************
whois_erreur(3);
return ($tampon);
}
// ********************************************
// Fonction d'affichage de l'erreur de saisie
// ********************************************
function whois_erreur($erreur) // $erreur représente le numéro d'erreur.
{
// ********************************************
// Affichage de titre
// ********************************************
echo
'
';
// ********************************************
// Message personnalisé
// ********************************************
if ($erreur==1)
echo'Le Whois ne peux pas avoir lieu car le champ IP est vide.';
elseif ($erreur==2)
echo'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.';
elseif ($erreur==3)
echo'Impossible de se connecter sur le serveur $server via le port 43.';
// ********************************************
// Fin du script général
// ********************************************
fin_du_script();
}
function fin_du_script()
{
// ********************************************
// Affiche de l'Url
// ********************************************
echo
'
';
// ********************************************
// Fin de la page Html
// ********************************************
echo
'
';
// ********************************************
// Fin du script général
// ********************************************
exit(0);
}
?>