Vous êtes ici Codes PHP et MySQL > Applications > Fonction de recherche whois (noms de domaine)

 

Fonction de recherche whois (noms de domaine)

Fonction fiable permettant d'effectuer une recherche de disponibilité d'un nom de domaine auprès des serveurs whois.

Prend en compte :
- Nom Libre
- Nom Pris
- Nom en Pending (principalement FR)
- Erreur requête
 
johnstyle
Site de l'auteur voir
Code vu 3846 fois
Enregistré le 03 Avril 2009
  • Digg ce code sur digg.com
  • Bookmark ce code sur del.icio.us
  • Bookmark ce code sur Google
  • Bookmark ce code sur Yahoo
  • Ajoute Fonction de recherche whois (noms de domaine)
  • Partage ce code sur Facebook
 
 
 
 

Code Source


01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
 
<?php
/******************************************************************************/
/*                                                                            */
/*                       __        ____                                       */
/*                 ___  / /  ___  / __/__  __ _____________ ___               */
/*                / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-<               */
/*               / .__/_//_/ .__/___/\___/\_,_/_/  \__/\__/___/               */
/*              /_/       /_/                                                 */
/*                                                                            */
/*                                                                            */
/******************************************************************************/
/*                                                                            */
/* Titre          : Fonction de recherche whois (noms de domaine)             */
/*                                                                            */
/* URL            : http://www.phpsources.org/scripts502-PHP.htm              */
/* Auteur         : johnstyle                                                 */
/* Date édition   : 03 Avril 2009                                             */
/* Website auteur : http://www.johnstyle.fr                                   */
/*                                                                            */
/******************************************************************************/


    // Informations spécifiques aux extenssions
    $info = array(
        'fr'     => array(
            'host'         => 'whois.nic.fr',
            'regexp'    => 'No[\s]*entries[\s]*found',
            'pending'    => 'status[\s]*:[\s]*REDEMPTION'
        ),
        'com'     => array(
            'host'         => 'whois.crsnic.net',
            'regexp'    => 'No[\s]*match[\s]*for'
        ),
        'net'     => array(
            'host'         => 'whois.crsnic.net',
            'regexp'    => 'No[\s]*match[\s]*for'
        ),                
    );

    function simpleWhois($domain$tdl$debug=false){
        // Fonction de traitement
        // -----------------------------------------------
        // 0    => Info, le nom est pris
        // 1    => Info, le nom est libre
        // 2    => Info, le nom est en pending
        // 3     => Avertissement, trop de requêtes
        // 4     => Erreur, il faut spécifier une chaine à rechercher (regexp)
        // 5     => Erreur, la requête retournée était vide
        // -----------------------------------------------
        global $info;

        // Initialisation de la sortie
        $output        '';
        
        // Initialisation de la requête
        $req        fsockopen($info[$tdl]['host'], 43$errno$errstr5); 
// le 5 permet de stoper la requete si aucune réponse au bout de 5 secondes
        
        // Récupération de la requête
        if($req){
            fputs($req$domain.'.'.$tdl."\r\n");
            while(!feof($req)) $output .= fgets($req4096);
            fclose($req);        
        }else unset($req);
        
        // mode debug
        if($debug) return $output;
        
        // Sortie vide
        if(empty($output)) return 5;
        
        // Trop de requêtes
        if(preg_match(
"/(Too[\s]+many[\s]+requests|Your[\s]+connection[\s]+limit[\s]+exceeded|daily" .
"[\s]+whois[\s]+limit[\s]+exceeded|Maximum[\s]+queries|WHOIS[\s]+LIMIT[\s]+EXC" .
"EEDED|referral[\s]+host[\s]+not[\s]+responding|Excessive[\s]+querying)/i"$output)) return 3; 
        
        // Pending
        if(isset($info[$tdl]['pending']) && !empty($info[$tdl]['pending']) && 
preg_match("/".$info[$tdl]['pending']."/i"$output)) return 2; 
    
        // Info de recheche manquant
        if(!isset($info[$tdl]['regexp']) || empty($info[$tdl]['regexp'])) return
 4; 
        
        // Libre
        if(preg_match("/".$info[$tdl]['regexp']."/i"$output)) return 1; 
        
        // Pris
        return 0;
    }
    
    
    // ==========================================
    // Exemple d'utilisation
    // ==========================================
        
        // Traitement d'une liste de domaines
        // --------------------------------------------------
            
            // Tableau des domaines
            $tab = array(
                'toto.com',
                'momo.com',
                'yoyo.fr',
                '65qs4df56q4qsdqsd.com',
                'koko.net',
                'zozo.net',
                'soso.net',
                'qoqo.net',
                'qs56d4qs56d4qs65d4qs564.net',
                'xoxo.net',
                'coco.com',
                'asthma.fr',
                'nono.net',
                'dodo.com',
                // etc..
            );
        
            // Récupération des résultats
            $output false;
        
            // Exécution
            if($tab){
                foreach($tab as $host){
                    list($domain$tdl) = split("\."$host2); 
// le 2 permet de s'arreter après le 1er point ce qui permet d'avoir des
// extenssion du type .com.fr
                    $output[$host]         = simpleWhois($domain$tdl);
                }
            }
            
            // Affichage "brut" des données traitées
            if($output){
                echo '<pre>';
                print_r($output);
                echo '</pre>';
            }
            
        // Mode debug
        // --------------------------------------------------
            echo '<pre>';
            echo simpleWhois('azerty''com'true);
            echo '</pre>';
            
    // ==========================================
    // ==========================================
    
?>

 

Fonctions du code

: Crée un tableau - (PHP 4, PHP 5)
: Ouvre une socket de connexion Internet ou Unix - (PHP 4, PHP 5)
: Alias de fwrite() - (PHP 4, PHP 5)
: Teste la fin du fichier - (PHP 4, PHP 5)
: Récupère la ligne courante sur laquelle se trouve le pointeur du fichier - (PHP 4,...
: Ferme un fichier - (PHP 4, PHP 5)
: Détruit une variable - (PHP 4, PHP 5)
: Détermine si une variable contient une valeur non nulle - (PHP 4, PHP 5)
: Expression rationnelle standard - (PHP 4, PHP 5)
: Détermine si une variable est affectée - (PHP 4, PHP 5)
: Transforme une liste de variables en tableau - (PHP 4, PHP 5)
: Scinde une chaîne en un tableau, grâce à une expression rationnelle - (PHP 4, PHP 5)
: Affiche une chaîne de caractères - (PHP 4, PHP 5)
: Affiche des informations lisibles pour une variable - (PHP 4, PHP 5)
Ajouter un commentaire
Code de sécurité

Attention: Les champs marqués d'une étoile * sont obligatoires
 
Librairie PHP

Connexion

 
 

Applications

 
 

PHP

 
 
 
 
    Offres d'emploi

Plus de 500 offres d'emploi PHP/MySQL

Offres d'emploi
 
    Editeur PHP
 
        Publicité