Page 1 sur 2

Aide pour modifier un script

Posté : 28 juin 2016, 08:47
par gillescoste2006
Bonjour à tous

J'ai trouvé ce script php sur un site qui permet de tester la disponibilité de plusieur ndd (Nom de domaine) inscrit dans un fichier texte.

Mon problème est que le script recherche la disponibilité sur toutes les extentions
alors que je voudrait qu'il ne recherche que sur l'extention que j'aurai indiquer sur le fichier texte

Pourriez vous me dire comment transformer le script ci-dessous

Merci beaucoup à tous pour votre aide
<?php
/******************************************************************************/
/*                                                                            */
/*                       __        ____                                       */
/*                 ___  / /  ___  / __/__  __ _____________ ___               */
/*                / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-<               */
/*               / .__/_//_/ .__/___/\___/\_,_/_/  \__/\__/___/               */
/*              /_/       /_/                                                 */
/*                                                                            */
/*                                                                            */
/******************************************************************************/
/*                                                                            */
/* Titre          : Vérifier massivement la disponibilité de plusieurs Nom... */
/*                                                                            */
/* URL            : http://www.phpsources.org/scripts380-PHP.htm              */
/* Auteur         : KOogar                                                    */
/* Date édition   : 05 Mai 2008                                               */
/* Website auteur : http://ref.nc                                             */
/*                                                                            */
/******************************************************************************/
 

// .eu .fr .com .net .org .info .biz .de .ca .me.uk .co.uk .org.uk
$theExt = array(".fr",".com",".eu",".ca",".info",".biz",".de",".org",".net");
// .eu .fr .com .net .org .info .biz .de .ca .me.uk .co.uk .org.uk

if (!($f=fopen("liste_ndd.txt","r")))
exit("Impossible d'ouvrir le fichier."); 
$f = 'liste_ndd.txt';
$tab = array();
if(file_exists($f)) {
    $tab = file($f);  // place le fichier dans un tableau
    $nb = count($tab);    // compte le nombre de ligne
    echo $nb;
    echo ' NDDs a vérifier';
}


$i=0;
  while ($i<=$nb)
  {
        $theNdd = $tab[$i];
         $theNdd = escapeshellcmd($theNdd); 
        //on definit les case du tableau à vérifier
        $caseForVerif['.net']=7;
        $caseForVerif['.com']=7;
        $caseForVerif['.org']=0;
        $caseForVerif['.fr']=13;
        $caseForVerif['.ca']=5;
        $caseForVerif['.info']=0;
        $caseForVerif['.biz']=1;
        $caseForVerif['.de']=45;
        $caseForVerif['.eu']=50;
        $caseForVerif['.me.uk']=30;
        $caseForVerif['.co.uk']=30;
        $caseForVerif['.org.uk']=40;
        //on definit les phrase à vérifier dans ces cases
        $strForVerif['.com']='No match for "'.$theNdd.'.COM".';
        $strForVerif['.fr']='%% No entries found in the AFNIC Database.';
        $strForVerif['.net']='No match for "'.$theNdd.'.NET".';
        $strForVerif['.org']='NOT FOUND';
        $strForVerif['.ca']='';
        $strForVerif['.info']='NOT FOUND';
        $strForVerif['.biz']='';
        $strForVerif['.de']='';
        $strForVerif['.eu']='';
        $strForVerif['.me.uk']='';
        $strForVerif['.co.uk']='';
        $strForVerif['.org.uk']=''; 
        foreach($theExt as $anExt) {
            $myArray=""; 
            $anExt=escapeshellcmd($anExt);
            exec('whois '.$theNdd.$anExt,$myArray,$retval);
            if (!empty($theNdd))
            $result.=(strtolower($myArray[$caseForVerif[$anExt]])== 
                      strtolower($strForVerif[$anExt]))?"->> ".$theNdd.$anExt." 
                      est libre<br/>":"->> ".$theNdd.$anExt." 
                      est déjà réservé<br />";  

        } 
   $i++;
  }
   echo '<h3>'.str_replace('\\','',$result).'</h3>';
?>

Re: Aide pour modifier un script

Posté : 28 juin 2016, 10:34
par Megadeth
Salut,
Bah à priori y a juste à réduire cet array :
$theExt = array("monextension"); en lieu et place de $theExt = array(".fr",".com",".eu",".ca",".info",".biz",".de",".org",".net");
Mega
;)

Re: Aide pour modifier un script

Posté : 28 juin 2016, 13:17
par gillescoste2006
Et pour les lignes suivantes du type
$caseForVerif['.net']=7;
        $caseForVerif['.com']=7;
        $caseForVerif['.org']=0;
        $caseForVerif['.fr']=13;
        $caseForVerif['.ca']=5;
        $caseForVerif['.info']=0;
        $caseForVerif['.biz']=1;
        $caseForVerif['.de']=45;
        $caseForVerif['.eu']=50
Y a rien à changer ?

Merci pour votre réponse
Gil

Re: Aide pour modifier un script

Posté : 28 juin 2016, 13:49
par or 1
non, il n'y a rien à changer.

Re: Aide pour modifier un script

Posté : 28 juin 2016, 13:53
par Spols
tout dépend de si tu choisis une des extensions qu'il y avait avant ou pas.

car ces lignes ne sont utile que si l'extension correspond, trop de ligne est inutile mais pas génant.
Si tu cherches une nouvelle extension, il faudra voir à qui ressemble le retour du whois et adapter des nouvelles lignes en conséquences

Re: Aide pour modifier un script

Posté : 28 juin 2016, 21:45
par gillescoste2006
Bonsoir et excusez le retard de ma réponse,

En fait je ne souhaite pas indiquer d'extention dans le script, je souhaite indiquer le nom de domaine directement dans le fichier comme par exemple monsite.com et que ce soit juste ce nom de domaine là qui soit pris en compte et requété en fait que le nom de domaine à requété soit gérer dans le fichier texte et non pas dans le script

Re: Aide pour modifier un script

Posté : 28 juin 2016, 23:28
par @rthur
Bonjour,

As tu testé ce script sur le futur serveur que tu vas utiliser comme hébergement ?
Car exec('whois ....') n'est pas disponible chez tous les hébergeurs

Re: Aide pour modifier un script

Posté : 29 juin 2016, 06:43
par gillescoste2006
Bonjour,

Oui je l'ai testé sur OVH et ça marche bien

Re: Aide pour modifier un script

Posté : 29 juin 2016, 08:36
par Spols
Ce que tu cherche à faire n'est pas trop compliqué, le début du code peut rester pour la lecture du fichier texte,

au début de ta boucle while, aprés récupération du nom de domaine tu va devoir séparer l'extension du nom. les fonction substr() et strpos() devrait t'y aider, à priori ce qui est avant le premier point de la chaine est le nom de domaine et ce qui est après l'extension.

ensuite il te faudra vérifier que l'extension est dans la liste des extensions vérifiables, le tableau défini en début de script sera utile

puis la boucle foreach peut être enlevé (mais pas son contenu) pour ne tester que l'extension voulue.

a priori avec ces changements cela devrait fonctionner.

Re: Aide pour modifier un script

Posté : 29 juin 2016, 12:31
par moogli
salut,

ton script devrait ressembler à cela
<?php

$caseForVerif = ['.net' => 7, '.com' => 7, '.org' => 0, '.fr' => 13, '.ca' => 5, '.info' => 0, '.biz' => 1, '.de' => 45, '.eu' => 50, '.me.uk' => 30, '.co.uk' => 30, '.org.uk' => 40];
$strForVerif = ['.com' => 'No match for %s".', 'fr' => '%%%% No entries found in the AFNIC Database.', 'net' => 'No match for %s".', 'org' => 'NOT FOUND', 'ca' => '', 'info' => 'NOT FOUND', 'biz' => '', 'de' => '', 'eu' => '', 'me.uk' => '', 'co.uk' => '', 'org.uk' => ''];

$ndds = file('liste_ndd.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$result = '';
foreach ($ndds as $ndd) {
    if (!empty($theNdd)) {
        $theNdd = escapeshellcmd($ndd);
        $myArray = '';
        $anExt = substr($theNdd, strrpos($theNdd, '.'));
        $anExt = escapeshellcmd($anExt);
        exec('whois '.$theNdd, $myArray);
        $result .= '->> '.$theNdd;
        if ((strtolower($myArray[$caseForVerif[$anExt]]) == sprintf(strtolower($strForVerif[$anExt])))) {
            $result .= 'est libre';
        } else {
            $result .= 'est déjà réservé';
        }
        echo '<h3>' , str_replace('\\', '', $result) , '</h3';
    }
}
j'ai pas testé, j'ai juste 'optimisé' l'utilisation des tableaux, supprimer les trucs 'inutiles' et utilisé seulement le ndd fournit sur chaque ligne du fichier.

Le fichier doit contenir un ndd par ligne

par exemple
phpfrance.com
www.phpfrance.com
phpfrance.fr
www.phpfrance.fr
etc..


@+

Re: Aide pour modifier un script

Posté : 30 juin 2016, 07:05
par gillescoste2006
Bonjour et merci pour vos réponse,

Je m'excuse de vous répondre avec autant de décalage.

J'ai essayer le script et en fait il ne s’exécute pas.

L’orque je vais sur la page rien ne se passe elle reste blanche le script ne s'exécute pas.

Vous seriez pourquoi ?

Re: Aide pour modifier un script

Posté : 30 juin 2016, 08:19
par Spols
As tu bien une adéquation entre le nom du fichier texte dans le script et sur le serveur ?

quelques corrections du script, mais cela n'explique pas l'affichage blanc
<?php

$caseForVerif = ['.net' => 7, '.com' => 7, '.org' => 0, '.fr' => 13, '.ca' => 5, '.info' => 0, '.biz' => 1, '.de' => 45, '.eu' => 50, '.me.uk' => 30, '.co.uk' => 30, '.org.uk' => 40];
$strForVerif = ['.com' => 'No match for %s".', 'fr' => '%%%% No entries found in the AFNIC Database.', 'net' => 'No match for %s".', 'org' => 'NOT FOUND', 'ca' => '', 'info' => 'NOT FOUND', 'biz' => '', 'de' => '', 'eu' => '', 'me.uk' => '', 'co.uk' => '', 'org.uk' => ''];

$ndds = file('liste_ndd.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
foreach ($ndds as $ndd) {
    $result = '';
    if (!empty($theNdd)) {
        $theNdd = escapeshellcmd($ndd);
        $myArray = '';
        $anExt = substr($theNdd, strrpos($theNdd, '.'));
        $anExt = escapeshellcmd($anExt);
        exec('whois '.$theNdd, $myArray);
        $result .= '->> '.$theNdd;
        if ((strtolower($myArray[$caseForVerif[$anExt]]) == sprintf(strtolower($strForVerif[$anExt])))) {
            $result .= ' est libre';
        } else {
            $result .= ' est déjà réservé';
        }
        echo '<h3>' , str_replace('\\', '', $result) , '</h3>';
    }
}

Re: Aide pour modifier un script

Posté : 30 juin 2016, 09:04
par @rthur
Page blanche sur un script PHP => Tu as une erreur et elle est masquée par ton serveur.
Voici un tuto pour la trouver :
faq-tutoriels/page-blanche-script-php-c ... 73178.html

Re: Aide pour modifier un script

Posté : 30 juin 2016, 10:36
par moogli
tiens j'ai oublié d'indiquer la donnée sprintf ....
if ((strtolower($myArray[$caseForVerif[$anExt]]) == sprintf(strtolower($strForVerif[$anExt], $theNdd)))) {

balot ;)

@+

Re: Aide pour modifier un script

Posté : 30 juin 2016, 22:06
par gillescoste2006
Je suis désolé mais cela ne marche toujours pas ne vous embêtez pas ça à l'air trop compliqué

Merci beaucoup