[classe php5]scan ip v2.0 - scanner des plages d'ip et retrouner le résultat dans un tableau

Soyez le premier à donner votre avis sur cette source.

Vue 23 500 fois - Téléchargée 1 368 fois

Description

Cela fait déjà quelque mois que le code existe sur l'admin de mon site mais je l'avais rédigé jusqu'à lors sous la forme de fonctions, pas très pratique quand il est utilsé dans plusieurs endroit.
J'ai donc décidé de le transformer en classe, de maniere a faciliter son utilisation et j'avais envie de vous en faire profiter.
Concretement, cette classe porte bien son nom puisqu'avec une simple poignée de renseignements elle vous retourne une liste complete des équipements (avec leur type et localisation) sur une plage d'adresse IP donnée.
Il vous suffit juste de donner le pool (deux premiers chiffre de l'adresse IP), la plage (le 3ème chiffre), le nombre de plage que vous désirez scanner et c'est parti! Le script va se carger de générer avec deux ou trois boucles toutes les adresses IP possible dans ce que vous lui avez donné à manger.
Pour finir, je préciserai que deux 'modes' sont disponibles, a savoir le mode 'simple' qui ne scanne qu'une seule plage d'adresse, sois 255 adresses différentes ou le mode 'multiple' qui scanne plusieurs plages (d'ou le nombre de plage a fournir).

Source / Exemple :


//Code a mettre dans votre page (index.php par exemple)
include('ScanIP.Class.php');//On importe la classe

$ScanIP = new ScanIP($operateur, $typeTest, $locationQuery);
$ScanIP->addPool($pool, $depart, $NbPlages);
$ScanIP->launch();

//Si vous desirez un compte-rendu graphique, rajoutez juste ceci :
$url = $ScanIP->generateGraphResume('chemin_de/sauvegarde');

?>

<img src="<? echo $url;?>" alt="" />

Conclusion :


Pour faire tourner le scanner, un objet est a creer (avec les paramètres qui vont bien avec, rdv dans le fichier), des pools sont a indiquer à l'objet (par le biais de $votreObjet->addPool();) et une fonction est a appeler : $votreObjet->launch(); et c'est parti!
Deux choix s'offrent à vous : fournir les paramètres par un formulaire ou coder en dur dans votre page les paramètres a definir.

Cette version n'est basée que sur IPV4... peut-etre qu'un jour, quand IPV6 se sera démocratisé, je ferai les modifications nécéssaires.

///---------------------
Au niveau des opérateurs, cette vision est un peu abstraite mais c'est un moyen pour savoir qui possède quoi durant le scan.
La définition d'opérateurs permet en outre de ne selectionner que les équipements de tels ou tels opérateurs (par le biais des patterns de determination de type), les autres entrées seront désignée comme 'bad'.

///---------------------
Sur le point du vue des deux fonction de détermination du type et de la localisation, vous pouvez ajouter vos propres paterns et type et ceux que j'ai fournis peuvent deja vous montrer la marche a suivre. Libre a vous donc de modifier ces deux fonction pour obtenir les résultats escomptés.

///---------------------
En dernier lieu, la classe est uniquement compatible PHP5 et la librairie GD2 est nécéssaire pour génerer les compte-rendus graphiques.
Le choix du PHP5 m'était plus pratique, tous ceux qui ne pourrons pas faire fonctionner la classe à cause de ce choix recoivent mes sincères exuses.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
cs_MATHIS49 Messages postés 368 Date d'inscription vendredi 10 octobre 2003 Statut Membre Dernière intervention 14 mai 2010 1
25 juil. 2006 à 11:03
trés sympa ;)
kiki2sirom Messages postés 153 Date d'inscription mardi 17 août 2004 Statut Membre Dernière intervention 23 décembre 2010
25 juil. 2006 à 13:31
ok sympa, bien commenté, au moins on peut comprendre "facilement", moi qui ne suis pas encore habitué des classes

qq petites choses pour aller mieux [moi aller mieux je précise ;)]

*
au lieu de

* select * : pas optimisé
* <?php au lieu de <?

merci pour moi :-)

cdt

kiki
cs_cacoucatatonique Messages postés 164 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 7 octobre 2009
25 juil. 2006 à 13:40
salut à tous,
cette petite classe est trés interessente mais j'ai un petit probleme, je ne sait pas utiliser les classes, alors je me demandé s'il etait possible d'avoir un exemple d'utilisation concret avec celle la?
je ne veux pas que l'on me mache le travail mais j'ai pas mal de difficulté à conprendre comment cela fonctionne.
alors merci d'avance
cyril
cs_fanfouer Messages postés 209 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 27 janvier 2008
25 juil. 2006 à 16:16
Si tu veut en apprendre un peu plus sur les classes, voici l'exellent tutorial de PHPDébutant : http://www.phpdebutant.org/article42.php (j'ai appris avec ca et je constate que je m'en suis pas mal sortit) et pour l'exemple concret, je l'ai mis dans la partie 'code source'.

Dans les remarques de kiki2sirom, il ya une chose que je n'ai pas compris : select * pas optimisé, et que doit-on mettre a la place? (si c'est la liste de tous les champs, ne serait-ce pas un peu lourd dans le code?).
Pour le reste, j'en tiendrait compte pour une prochaine édition.
Au programme, une chose qui me parait importante : la suppression de l'array des pools en paramètres et son remplacement par une methode d'ajout (ca ressemblerait a ca :
$scan = new ScanIP(...
$scan->addPool('pool1', ...);
$scan->addPool('pool2', ...);
$scan->launch();
), ca me semble plus simple pour l'utilisateur.

A la prochaine donc et merci pour le 8 ;)
cs_cacoucatatonique Messages postés 164 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 7 octobre 2009
26 juil. 2006 à 09:05
coucou, comment va? une petite question.
Est'il possible d'utiliser cette classe sur un reseau intranet? je me pose la question car je me suis appercu que tu fais une recherche à partir d'un FAI!!
a pluche
cyri

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.