Whois ip - ripe - iana et resolution de nom

Soyez le premier à donner votre avis sur cette source.

Vue 8 514 fois - Téléchargée 565 fois

Description

Ce code Php a pour but de se connecter sur les différentes bases whois des RIR via le port TCP 43. Il vous renverra lequel des RIR possèdent l'adresse IP sélectionné et vous indiquera la déclaration faite par le propriétaire.

L'intérêt de ce script est de ne pas chercher sur tous les RIR, il le ferra pour vous.

Une démo du code est disponnible à l'adresse suivante :
http://www.frameip.com/whois/

----------------------
http://www.frameip.com
Pour ceux qui aiment TCPIP
----------------------

Source / Exemple :


<?

// ********************************************
// 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
	'
	<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

	<html>

	<head>

	<LINK REL="StyleSheet" HREF="../style.css" TYPE="text/css">

	<title>FrameIP, Pour ceux qui aiment IP - Script Whois</title>

	<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
	<META NAME="AUTHOR" CONTENT="www.frameip.com">
	<META NAME="COPYRIGHT" CONTENT="Copyright (c) 2003 by framip">
	<META NAME="KEYWORDS" CONTENT="whois, online, outil, ripe, iana, apic, arin, lacnic, adresse ip, rir, registrar, tcp 43, lir, rir, db, database, as, asnum">
	<META NAME="DESCRIPTION" CONTENT="Frameip, pour ceux qui aiment IP - Script Whois">
	<META NAME="ROBOTS" CONTENT="INDEX, FOLLOW">
	<META NAME="REVISIT-AFTER" CONTENT="1 DAYS">
	<META NAME="RATING" CONTENT="GENERAL">
	<META NAME="GENERATOR" CONTENT="powered by frameip.com - webmaster@frameip.com">
	
	</head>

	<body>
	';

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

// **********************************************
// Récupération de la date et heure
// **********************************************
$annee=date("Y");
$mois=date("m");
$jour=date("d");
$heure=date("H");
$minute=date("i");
$seconde=date("s");

// **********************************************
// Récupération de l'IP cliente
// **********************************************
$ip_client=getenv("REMOTE_ADDR");

// **********************************************
// Récupération du Ptr de l'IP cliente
// **********************************************
$ptr=gethostbyaddr("$ip_client");
if ($ptr==$ip_client)
	$ptr="Pas de ptr";

// **********************************************
// Récupération du port TCP source
// **********************************************
$port_source=getenv("REMOTE_PORT");

// **********************************************
// Récupération de l'IP du browser
// **********************************************
$ip_browser=getenv("HTTP_X_FORWARDED_FOR");

// ********************************************
// 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 	'
	<p align="center">
		<font size="4" color="#008000">
			<b>
				Whois
			</b>
		</font>
	</p>
	<p>
		Voici les résultats du whois pour l\'adresse IP '.$whois_ip_demande.'
		<br>
		&nbsp;
	</p>
	';

// ********************************************
// 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 '<BR><b>';
echo 'C\'est le serveur '.$serveur_ayant_repondu.' qui possède l\'information suivante :';
echo '</b><BR><BR>';

// ********************************************
// 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
		'
		<p align="center">
			<b>
				<font size="5" color="#008000">
					Erreur
				</font>
			</b>
		</p>
		';

	// ********************************************
	// Affichage de l'erreur
	// ********************************************
	echo
		'
		<p>
		';

	// ********************************************
	// 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
		'
		</p>
		<p align="right">
			<a target="_blank" href="http://www.frameip.com">
				www.FrameIP.com
			</a>
		</p>
		';

	// ********************************************
	// Fin de la page Html
	// ********************************************
	echo
		'
		</body>

		</html>
		';

	// ********************************************
	// Fin du script général
	// ********************************************
	exit(0);
	}

?>

Conclusion :


Vennez voir le fonctionnement ici :
http://www.frameip.com/whois/

----------------------
http://www.frameip.com
Pour ceux qui aiment TCPIP
----------------------

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
5
Date d'inscription
dimanche 14 mars 2010
Statut
Membre
Dernière intervention
20 mai 2011

Source magnifique ! Un grand bravo et merci !
Messages postés
5
Date d'inscription
jeudi 7 avril 2005
Statut
Membre
Dernière intervention
2 décembre 2011

Salut a tous
un code parfait, je donne 10 , mais une petite chose quand j'utilise ce code il m'affiche ça :
unable to connect to whois.crsnic.net:43 (Connection refused)

je sais pas c'est quoi le pb, le port 43 est bien ouvert, est ce que il faut avoire une permission pour se connecter sur les différentes bases whois des RIR via le port TCP 43 ou c'est pas une obligation et la permission existe pour n'importe qui ?

j'espère que ma question est claire
Merci de me répondre
a+
Messages postés
4
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
23 août 2006

je corrige ca marche meme si c'est chelou je m'explique : j'ai viré un "d" à $ipaddress de la page whois.php et j'ai aussi viré un "d" dans le name (ipaddress) de ma page de formulaire
Messages postés
4
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
23 août 2006

"Erreur

Le Whois ne peux pas avoir lieu car le champ IP est vide."

Je ne comprend pas pourquoi j'ai cette erreur, j'ai créé un formulaire qui envoie la variable ipaddress mais pas de résultat.. (j'avais cru comprendre qu'il n'était pas dans le code founi)
Merci de votre aide
Messages postés
435
Date d'inscription
vendredi 20 septembre 2002
Statut
Membre
Dernière intervention
20 novembre 2004

excellent sa vaut bien un 9
Afficher les 14 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.