Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

[CLASSE PHP5]SCAN IP V2.0 - SCANNER DES PLAGES D'IP ET RETROUNER LE RÉSULTAT DANS UN TABLEAU


Information sur la source

Catégorie :Réseau & Internet Classé sous : gethostbyaddr, scanner, adresseip, operateurs, adsl Niveau : Initié Date de création : 22/07/2006 Date de mise à jour : 07/05/2007 19:37:57 Vu / téléchargé: 16 817 / 978

Note :
9 / 10 - par 2 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note


Description

Cliquez pour voir la capture en taille normale
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

  • //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="" />
//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.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

22 juillet 2006 16:02:52 :
Correction d'un erreur bete dans la deuxieme partie de l'explication
26 juillet 2006 21:05:41 :
Comme précisé dans l'un de mes commentaires, cette MAJ concerne la méthode addPool(); qui remplace la fastidieuse confection d'un array résumant l'ensemble des propriétés des pools à scanner (cétait vraiement pas très malin de ma part). Elle simplifie donc la vie de l'utilisateur. Pour le reste, les paterns de localisation et de typage resterons la ou ils sont car je pense que la classe doit etre personnalisée selon les besoins de chacun (meme si c'est pas le but d'une classe en général). Seul le moteur (ScanPlage();) doit rester tel quel. Je ne peut prévoir ce qui va etre determiné pour la localisation et le type (je vous en ai fourni quelque-uns, ceux dont j'avais besoin) donc je ne peut pas finaliser la classe de ce coté la. La source est maintenent dans sa version finale (du moin je pense), bonne utilisation.
07 mai 2007 19:37:57 :
Post de la V2.0 : Modifications dans le fonctionnement ainsi que l'implémentation des graphs resumant le scan.

Commentaires et avis

signaler à un administrateur
Commentaire de MATHIS49 le 25/07/2006 11:03:46

trés sympa ;)

signaler à un administrateur
Commentaire de kiki2sirom le 25/07/2006 13:31:10

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 ;)]

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

merci pour moi :-)

cdt

kiki  

signaler à un administrateur
Commentaire de cacoucatatonique le 25/07/2006 13:40:15

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

signaler à un administrateur
Commentaire de fanfouer le 25/07/2006 16:16:34

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 ;)

signaler à un administrateur
Commentaire de cacoucatatonique le 26/07/2006 09:05:34

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

signaler à un administrateur
Commentaire de fanfouer le 26/07/2006 17:23:06

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 ;)

signaler à un administrateur
Commentaire de kankrelune le 31/07/2006 03:58:20

[quote]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?).[/quote]

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°

signaler à un administrateur
Commentaire de kiki2sirom le 31/07/2006 11:47:44

ben écoute voilà.
merci kankrelune pour ta réponse claire, nette, précise et sans bavures.

byyyyyyee

kiki

signaler à un administrateur
Commentaire de fanfouer le 07/08/2006 00:32:28

Oui... Vu comme ca ca change deux ou trois choses. J'y penserai à l'avenir. Merci les gars ;)

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

scanner repertoire [ par morgandetoi06 ] comment faire pour scanner un repertoire "photos/" et afficher toutes les photos de ce repertoire ?mercu de votre aidewww.morgan06.fr.fm dilemme pour scanner un répertoire distant [ par floflotz ] bonjour à tousje suis en train de faire un petit script et je rencontre un gros souci !je souhaite scanner un répertoire distant, répertoire contenant Utiliser un scanner en php [ par mictif ] bonjour, j'aimerais savoir si il ete possioble de gerer un scanner en php ;je vous explique la fonctionnalit&#233; que j'aimerais integrer dans mon a PHP sans acces adsl [ par boblebricotueur ] Je voudai savoir comment faire pour faire du php sur mon pcmerci gethostbyadress [ par wizad ] Bonjour,J'utilise la fontction gethostbyadresse dans un de mes script php malheureusement les visiteurs de certain réseau (type entrprise ou scolaire) Condition PHP pb d'operateurs [ par d9thc ] Bonjour à vous, j'ai une question sur les condition en php, commencons par le début: <f scanner des photos et enregistrer en format JPG [ par merkhaled ] bonjour, je souhaiterais savoir si on pouvait scanner une image (twain) en php, et l'enregistrer en format jpg, en local ou sur un serveur distant (ft scanner un répertoire [ par mcleod1 ] Quelqu'un sait il comment scanner un répertoireet lister tous les sous répertoires non vides avec lien vers ceux ci (création d'un html avec liste de Scanner un dossier vers mysql... [ par R3dDragon ] Bonjour à tous,J'aimerais s'il est possible de scanner les fichiers d'un dossier, et d'en envoyé le nom, ainsi que le nom complet (avec extension) ver Module pour piloter un scanner [ par sasigabon ] Bonjour,Je suis en train en train de développer un logiciel GED en PHP4, et j'ai 3 questions fondamentales.1Q : Je suis bloqué pour coder la fonction


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,624 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.