[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 22 104 fois - Téléchargée 1 292 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

je n'arrive pas a implémenté cette class
de l'aide svp
cs_fanfouer
Messages postés
209
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
27 janvier 2008
-
Oui... Vu comme ca ca change deux ou trois choses. J'y penserai à l'avenir. Merci les gars ;)
kiki2sirom
Messages postés
153
Date d'inscription
mardi 17 août 2004
Statut
Membre
Dernière intervention
23 décembre 2010
-
ben écoute voilà.
merci kankrelune pour ta réponse claire, nette, précise et sans bavures.

byyyyyyee

kiki
kankrelune
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015
-
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?).


En fait c'est le contraire... en shématisant si tu demande les champs x et y mysql ne se pose pas de question et te renvoi juste les champs demandés si tu fais SELECT * mysql fait d'abord une recherche au niveau de la structure de la table, ce qui est une perte de temps vu que tu connais la structure de ta table, puis te renvoi tous les champs alors que tu n'as pas forcement besoin de la valeurs de tous les champs... .. .

Voili voilou... .. .

@ tchaOo°
cs_fanfouer
Messages postés
209
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
27 janvier 2008
-
Oui, c'est vrai cette classe, légerement modifiée pour mes propres besoins, me permet de sortir des listes d'equipements ADSL. Seulement, les FAI ne sont qu'un exemple et le test fonctionne, en principe, sur toutes les IP qui sont capables d'etre atteintes par la machine testeuse. En clair, si la machine est positionnée sur internet, elle va avoir les IP d'internet et si elle est en reseau local, elle peut avoir les IP du reseau local plus celles d'internet, tout depend donc de sa position.
J'en profite pour rajouter que l'objet de la mise a jour a venir sera de tout faire pour que l'utilisateur ne modifie pas le fichier de classe et ajoute ses pools, themes d'affichage et autres par des methodes.

Voila, bonne continuation ;)

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.