mercredi 18 avril 2007, 08:33
WHOIS en PHP, pour savoir à qui appartient un nom de domaine
Par Sven CAILTEUX - PHP - Lien permanent
Voici un script en PHP, conforme et valide pour obtenir des informations sur un nom de domaine.
Script en fonctionnement ici
Modifications apportées, prise en charge de l'extension "eu" et modification du serveur pour les extensions "biz"
Modifications apportées, correction du serveur pour les .org. Merci à "Michel" d'avoir soulevé le problème.
Modifications apportées, correction du serveur pour les .be. Merci à "Olivier" d'avoir soulevé le problème.
Le code PHP étant trop long à l'affichage, vous le trouverez au format texte ici :
CODE PHP WHOIS
accessing whois server with php, connecting to whois server with php, connecting to whois with php, join a usergroup, language or someone, multiple whois search php, open sorce code whois domain name php, open source code whois domain name php, php code for whois server connection, php script whois traceroute ping, php whois, php whois inquiries, php whois script, searching whois database with php, whois domain name php, whois domain name using php script, whois information, whois php, whois php script, whois php script yazmak, whois script php, whois search, whois server
66 commentaires
Salut
dkgndflgnjgndklhdfjkyl.fr deja pris ?? il semble avoir un probleme avec les .fr
A bientot
Bonjour,
Merci d'avoir soulevé le problème, c'est corrigé, très certainement que le NIC a changé la présentation de ses données.
Bonne journée
Super merci bien !
genial et super pratique, je viens de l'installer juste en faisant un copier coller du code dans ma page HTML et ca marche nickel.
Les .org ne fonctionne pas non plus
Merci d'avoir soulevé le problème des .org, c'est à présent corrigé.
N'hésitez pas à nous faire part de tout problème
@+
le moins que l'on peut dire, c'est que vous etes rapides chez Dimension Internet
Message à 13h47, probleme corrigé 30 minutes plus tard.
Chapeau bas ^^
mdr je vais looker la modif alors ^^
Hello,
Le .ca ne fonctionne pas ^^
ok j'ai modifié le fichié pour le .CA et j'ai ajouté ça dans les conditions :
!
|| ereg("AVAIL", $buf)
et ça fonctionne
Bien vu Mac
et bonne correction.
Le script est corrigé et disponible....
Merci à vous, à force on va finir par avoir un script impeccable.
Vous comprendrez aisément la difficulté à tester chaque extension avec un nom de domaine existant et non existant, chaque extension nécessite deux tests, soit 104 extensions = 208 tests :P~ , d'où l'intérêt de nous faire remonter l'information....
@+
Problème réglé, j'avais mis www. devant *honte*.
Par contre, je n'arrive pas à rechercher sur .us...
Problème avec les .be réglé
Merci de l'avoir soulevé
et bien je vois que mon post a été effacé... hum pas très fair play, surtout pour ceux qui rencontraient le même problème que moi et auquel je donnais une solution.
je viens d'ajouter un module GoogleMaps qui affiche une carte en fonction des données récupérées dans le whois.
Quels autres services jugez-vous judicieux d'ajouter ?
Nous avons réorganisé les commentaires pour ne pas perdre les lecteurs. Etant donné que le problème ne vient pas du script lui même, nous n'avons pas jugé nécessaire de conserver ce commentaire.
Pour ce qui est de votre site, il ne propose pas le code source, il n'est donc pas en rapport avec le sujet...
En effet je ne mets pas le code a disposition, et d'ailleurs j'y travaille encore en ce moment même.. Il n'est pas terminé.
d'ailleurs voila c maintenant. cordialement
Je pense être en plein dans le sujet "coder un whois en php" quand je fais part des problèmes de connexion à certains serveurs whois depuis les hébergements mutualisés et en offrant un serveur alternatif pour le TLD .org (whois.opensrs.net) pour ceux qui auraient exactement le même problème que moi sur leur serveur en utilisant ton script!
Je pense encore qu'utiliser le résultat du whois pour afficher par exemple une GoogleMap est un truc sympa qui pourrait intéresser chacun des lecteurs de cette rubrique. Aussi je me demande si vous avez d'autres idées d'exploitation des infos de ce genre.
Désolé d'avoir à faire cette mise au point, comme tu le constates je suis passionné par ce sujet.. mais je sais quand-même m'arreter
Vraiment super ton script, merci à toi.

et bonne année à tous.
Super ce Script !
Cependant, ne fonctionne pas avec le .info !
Bonjour à tous,
comment l'intégrer, car moi je suis sous Joomla ??
Merci
Un simple copier coller du code à l'endroit souhaité...
salut intéressant le script. j'aimerais savoir s'il n'est pas possible d'avoir une version permettant de rechercher la disponibilité de plusieurs noms de domaines à la fois
merci d'avance...
Idée intéressante
Ca n'est pas très dur, suffit de faire un autre champ et de faire le même traitement.
Je vais me pencher dessus quand j'aurais un moment.
je constate avec plaisir que je ne suis pas seule à perdre du temps sur ton billet !
décidément un moment est plus long que prévu !!!
en tout cas je continue à attendre car je suis impatient de voir la disposition des résultats.
je constate avec plaisir que je ne suis pas seule à perdre du temps sur ton billet !

Comme environ 11.000 personnes par mois
décidément un moment est plus long que prévu !!!
en tout cas je continue à attendre car je suis impatient de voir la disposition des résultats.
Je n'ai pas trop de temps à accorder en ce moment.
Pourquoi vouloir traiter plusieurs nom de domaine en même temps ?
Il faudra de toute manière taper le nom de domaine.
Actuellement il suffit de taper le nom et de valider, le résultat apparaît et là vous pouvez taper un autre nom et revalider pour obtenir le résultat.
Une solution plus lourde consisterait à taper un nom de domaine en cochant des extensions et ainsi voir la disponibilité pour chaque extension.
Lorsque j'aurais du temps à accorder au projet, je verrai ce que je peux faire.
@+
Excellent script !!! Cela faisait un moment que je cherchais un script de whois.
Par contre les recherches des "*.com" et "*.net" provoquent des erreurs et évidemment pas de réponce. J'ai trouvé une soluce en remplacant : "rs.internic.net" par "whois.internic.net" et cela fonctionne nickel chrome ;). Je n'ai pas encore testé toutes les extensions... En tout cas MERCI pour ce script.
Rectificatif :
En fait les deux serveurs "rs.internic.net" et "whois.internic.net" fonctionnent, "rs.internic.net" semble être le serveur Whois officiel d'internic.net. Il semblerait qu'internic.net était inaccessible une partie de cet après-midi d'où les messages d'erreurs.
Deux petites suggestions :
1 Sven CAILTEUX ton script est écrit sur deux lignes, (pas de retour chariot), ce qui rend compliqué de trouver l'endroit où se trouve les erreurs lorsqu'il y en a. J'ai remanié le fichier dans ce sens ce qui permet d'identifier les lignes qui posent problème plus facilement. Je peux te le refiler si tu le veux contacte moi.
2 Ce qui serait bien c'est d'avoir un message d'erreur lorsqu'il y en a, (du type : "serveur indisponible recommencez plus tard"...), quand les serveurs sont inaccessibles ou ne répondent pas au lieu d'avoir une floppé de "Warning: fputs(): supplied argument is not a valid "...
PS : Je suis un newbee en programmation PHP, ce qui me fait dire que ton script est simple, accessible aux débutants comparé à d'autres scripts.
yahoo.fr libre ? il y'a comme un probleme mon brave.
J'ai ajouté un leger correctif qui semble marcher
if(ereg("No match for", $buf) ||
ereg("NOT FOUND", $buf) ||
ereg("Status: FREE", $buf) ||
ereg("No entries found", $buf) ||
//pour yahoo.fr on a [INFORMATION NOT AVAILABLE] d'ou le message bizarre
(!ereg("\[INFORMATION NOT AVAIL", $buf) && ereg("AVAIL", $buf)))
tiens et en petit bonus cadeau, quelques critères supplémentaires et non-exhaustifs pour les "no match" pour les "braves".. wa l'autre, encore qu'avec les seuls tests fournis en source, il est vrai que l'on est clairement loin d'un test fiable.
voila mes 2 cents :
INFORMATION NOT AVAIL
AVAIL
Status: free
no match
no entries
not found
no data
no such domain
not a registered
no encontr
do not have an entry
no entry
no relevent
no existe
nomatch
220 Available
no information
not exist
www.google.fr est libre bizarre
Vous n'avez pas encore compris le script dans ce cas.
Il est indiqué que Google SEMBLE libre
Et si le critère annoncé par le serveur ne correspond pas à ceux du script, il annonce que le nom de domaine semble libre
C'est un script développé personnellement, gratuit, il n'y a aucune garantie...
Je ne connais pas le fonctionnement des scripts proposés par les organismes officiels d'enregistrement de nom de domaines.
Bonjour
Moi j'ai ajouté un deuxiemme script de consulatation de whois, (pour être sur et comparer les résultats), c'est : "MWhois", vous le trouverez à cette adresse :
www.mattsscripts.co.uk/mw... il y a deux versions différentes, une en PHP et l'autre en PERLE.
Je pense qu'en combinant les deux, il devrait y avoir moyens de parfaire le script de "Sven Cailteux" qui est déjà accès efficasse en dehors des p'tit problème énoncé si dessus...
Cordialement
Bonjour,
Super le script , c'est vraiment efficace... mais je crois que ca bug pour les .biz !... A moins que cela vienne de moi
En tout cas bravo !
Sympatoche ce petit script ^_^
Je vais rajouter ma pierre, si vous souhaitez un support de l'extension .RE ( ile de la réunion ), voici le code à rajouter dans le tableau $whois_serveurs :
're' => 'whois.nic.re',
Un nouveau script est en train de voir le jour, beaucoup plus propre, repris
de zéro.
Adaptable à d'autres extensions très facilement, multi-langues,...
Vous pouvez le tester ici :
www.dimension-internet.co...
Une fois bien ficellé et terminé je mettrais les sources à disposition.
Bonne utilisation
Très bien, comme script.
Et il conviendrais pour les requêtes multiples. Il "suffirait" de l'exploiter avec un peu d'Ajax pour obtenir un rendu genre eurodns. Enfin quand je dis il suffirait....
attention au niveau des .be
www.dns.be/fr/home.php?n=...
==>
"be"=>"whois.dns.be",
puis
if (strtolower($parseur[count($parseur) - 1])=="be") $port=4343; else $port=43;
$fp = fsockopen($hote, $port, $errno, $errstr, 10);
if ($port==4343) {
fputs($fp, "GET ".$parseur[0]." 2.0");
} else {
fputs($fp, $_GET['domaine']."\r\n");
}
Pas nickel, mais bon
Salut sven, il est super ton script, quand penses-tu mettre à disposition les sources du nouveau script ?
Et bien je cherche à le peaufiner encore un peu, si vous avez des idées d'améliorations...

• Actuellement, je voudrais ajouter le "cocher tout/décocher tout" qui pour le moment ne fait que cocher...
P.S. : Au fait très pratique sur téléphone portable quand vous êtes à l'extérieur...
il marche parfaitement...
bonjour
voici ma contribution
quelque oublié francophone ...
"re"=>"whois.nic.fr" // ile de la reunion
"mq"=>"whois.nic.fr" // martinique
"gp"=>"whois.nic.fr" // gadeloupe
"gf"=>"whois.nic.fr" // guyanne francaise"
"nc"=>"whois.nic.fr" // Nouvelle - Calédonie
"pf"=>"whois.nic.fr" // Polynésie française
"wf"=>"whois.nic.fr" // (Wallis et Futuna)
TF n'est plus géré par AdamsNames
".tf is not a domain controlled by AdamsNames"
TF est géré par l afnic depuis 2004
donc remplacer
"tf"=>"whois.adamsnames.tc" par
"tf"=>"whois.nic.fr" // Terres Australes et Antarctiques
bonne journée
bonjour
suite de ma contribution.
Aujourd'hui un petit masque pour interdire les caractères accentués et autre symbole.
Cela n'est pas vrai pour les .be .no et quelques un comme cela.
Mais appliqué les différentes règles complique le script.
Il a été considéré par Sven que tous les caractères sont autorisés.
De mon point de vue je fais le choix du moins dans un premier temps de restreindre cela.
Au moins pour limiter le nombre des requetes whois qui sont certaines de ne pas aboutir et charge la machine et réseau innutilement.
exemple de requete inutile
"whois votre*nom.net" l'étoile ou astérisque n'est jamais acceptée
"votré-nom.re" le "é" "e accent" n'est rarement accepté.
"votré nom.net" l'espacement n'est jamais accepté
Donc avec ce masque on considère que les domaines ne peuvent avoir que des lettre et des chiffres et le tiret "-".
[code]
preg_match('`^[[:alnum:]]{}$`'
[/code]
Bonjour sven CAILTEUX, merci pour ton script, quand penses-tu dévoiler ta V2 ? (www.dimension-internet.co... je l'ai testé et ça marche d'enfer !
Bonjour,
Apparament, j'ai un unable to connect to rs.internic.net depuis mon serveur 91.121.98.29 depuis quelques heures.
Est ce qu'il y aurais une autre solution afin de faire fonctionner le whois vers internic ?
Merci
Jérémy
Bonjour,
J'ai la meme erreur que caaptusss sur mon serveur et en local:
unable to connect to rs.internic.net
Est-ce que ceci est reparable?
Merci de votre aide.
Jerome
Avez-vous essayé sur un serveur externe ?
C'est sûrement du à votre configuration, s'il ne parvient pas à se connecter.
Bomjour,

le script ne fonctione pas non plus a cette adresse:
www.dimension-internet.co...
ceci semble bien lie au script lui meme.
Merci d'avance pour votre aide
Jerome
Ce n'est pas lié au script !
Il faut comprendre que le script fait appel à des connexions extérieures, si elles ne fonctionnent pas le script n'est pas en cause.
Sur quelle domaine et extension ?
Merci pour votre reponse.

Voici quelques exqmples de domaines qui retourne une erreur:
google.com
dimension-internet.com
asdfghjklertyuiodfcvgdfgh.com
Merci d'avance pour votre aide
Jerome
Pour la précision ce ne sont pas des erreurs mais des avertissements, il suffisait juste de changer le serveur whois internic, maintenant ça marche.
Bonne journée
Merci pour ce super script!!! J'ai pu trouver ce que je cherchais, je suis ravie!
Bonjour,
Est-ce que le script de ce whois www.dimension-internet.co... est finalement disponible?
Trop génial la nouvelle version... As-t-on une idée du moment où le code source sera dispo ? Réellement, Sven, on peut vous féliciter pour ce script, et vous féliciter de penser le mettre à dispo gratuitement. C'est si rare de nos jours. Je suis impatient...
Bien amicalement, Daniel
Bon va falloir que je mette le turbo si je comprends bien
En ce moment l'activité est importante j'ai donc moins de temps pour peaufiner le tout.
Promis je m'y recolle aussi vite que possible.
Si vous avez d'autre suggestions / fonctionnalités, concernant le script je suis preneur...
@+
Dans ton 1er script www.dimension-internet.co... tu utilises des fonctions POSIX (ereg) qui sont obsolètes et ce script ne tournera pas en php6.
Voir ici: www.urlrewriting.fr/artic...
Dans celui-ci c'est la fonction strpos() qui est utilisé...
Salut,
Le '.ma' ne fonctionne pas !!!....
même chose pour moi, ne fonctionne pas.

www.boutiknline.com/whois...
Juste un petit commentaire concernant le script www.dimension-internet.co... (dont on attend patiemment le code source :D), si y a moyen d'ajouter une ch'tite vérification je pense que beaucoup de personne vont taper directement : domaine.com au lieu de domaine.
Merci pour le script !
Bonjour Swen,
j'ai mis en place votre script qui me pose un soucis au retour?
le fichier who_is.php est placer cote serveur sur /web/storereservatio/www/who_is.php d'ou le changement du parametre fstockopen de 43 a 26, le resutlat n'est pas bon?
l'url qu'il compose est www.store-reservation.com...
Quel est la regle pour soustraire le chemin complet du serveur.
Merci pour votre reponse,
Bonne journee a tous,
Petit bonjour de thailande
Guy
Merci sven déjà pour le 1er code.je développe en dotnet et tu m'inspire avec ton code php.j'attends avec impatience la prochaine version.
Bonjour
Waao Correction sur correction mais il faudrait bien pensé à le féliciter. Je crois qu'il a fait du bon boulot et mérite un peu d'applaudissements avant ...
Le seul problème c'est que ça ne marche pas en local ni même sur mon serveur.
Peut être pourriez vous nous donner le code du nouveau dont vous parlez. Moi j'en ai besoin de toute urgence.
Merci
bonjour,
en fait ça marche pas pour .fm.
Les .net posent de sérieux problèmes.
Bonjour,
Problèmes avec les .net, voici quelques messages d'erreur
A+
rs.internic.net
Warning: fsockopen() [function.fsockopen]: unable to connect to rs.internic.net:43 (Connection refused) in /mnt/sites/dimension-internet.com/web/who_is.php on line 168
Warning: fputs(): supplied argument is not a valid stream resource in /mnt/sites/dimension-internet.com/web/who_is.php on line 169
Warning: feof(): supplied argument is not a valid stream resource in /mnt/sites/dimension-internet.com/web/who_is.php on line 170