begin process at 2012 05 27 18:25:24
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Sécurité & Cryptage

 > SCANNER DE PORT TCP - CODE SOURCE COMMENTÉ ET AFFICHAGE DU RESULTAT FLUIDE

SCANNER DE PORT TCP - CODE SOURCE COMMENTÉ ET AFFICHAGE DU RESULTAT FLUIDE


 Information sur la source

Note :
5,5 / 10 - par 2 personnes
5,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Sécurité & Cryptage Niveau :Initié Date de création :15/06/2004 Vu / téléchargé :8 633 / 373

Auteur : _sebf

Ecrire un message privé
Site perso
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description


Ce code Php a pour but de scanner les ports d'un host Internet. Cela vous permettera, partant du serveur d'hébergement de Frameip.com, de tester si les ports Tcp sont fermées ou ouverts.

Une démo du code est disponnible à l'adresse suivante :
http://www.frameip.com/scan/

------------------- ---
_sebf
http://www.frameip.com
Pour ceux qui aiment TCPIP
----------------------

Source

  • <?
  • // ********************************************
  • // Nom du script : scan.php
  • // Auteur : _SebF AT frameIP.com
  • // date de création : 07 Novembre 2003
  • // version : 2.1
  • // Licence : Ce script est libre de toute utilisation.
  • // La seule condition existante est de faire référence au site http://www.frameip.com afin de respecter le travail d'autrui.
  • // ********************************************
  • // ********************************************
  • // Affichage de l'entete html
  • // ********************************************
  • echo
  • '
  • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  • <html>
  • <head>
  • <LINK REL="StyleSheet" HREF="../style.css" TYPE="text/css">
  • <title>FrameIP, Pour ceux qui aiment IP - Script Scan</title>
  • <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  • <META NAME="AUTHOR" CONTENT="www.frameip.com">
  • <META NAME="COPYRIGHT" CONTENT="Copyright (c) 2003 by framip">
  • <META NAME="KEYWORDS" CONTENT="scan, online, outil, tcp, udp, port, destination, ouvert ferme, session, valider, validation, securite">
  • <META NAME="DESCRIPTION" CONTENT="Frameip, pour ceux qui aiment IP - Script Scan">
  • <META NAME="ROBOTS" CONTENT="INDEX, FOLLOW">
  • <META NAME="REVISIT-AFTER" CONTENT="1 DAYS">
  • <META NAME="RATING" CONTENT="GENERAL">
  • <META NAME="GENERATOR" CONTENT="powered by frameip.com - webmaster@frameip.com">
  • </head>
  • <body>
  • ';
  • // **********************************************
  • // Récupération des variables POST
  • // **********************************************
  • $scan_adresse_ip = $_POST['ipaddress'];
  • $scan_port_de_depart = $_POST['port1'];
  • $scan_port_de_fin = $_POST['port2'];
  • // ********************************************
  • // Vérification du champ IP
  • // ********************************************
  • if (empty($scan_adresse_ip))
  • scan_erreur(1);
  • if ($scan_adresse_ip==0)
  • scan_erreur(4);
  • if (ip2long($scan_adresse_ip)==-1) // Vérification de la conformité de l'IP
  • scan_erreur(4);
  • else
  • {
  • // Transforme les saisies tel que 10.10..4 en 10.10.0.4
  • $inetaddr=ip2long($scan_adresse_ip);
  • $scan_adresse_ip=long2ip($inetaddr);
  • }
  • // ********************************************
  • // Vérification des champs ports
  • // ********************************************
  • if (empty($scan_port_de_depart))
  • scan_erreur(2);
  • if (empty($scan_port_de_fin))
  • scan_erreur(3);
  • if (is_numeric($scan_port_de_depart)==false) // Si ce n'est pas un nombre
  • scan_erreur(10);
  • if (is_numeric($scan_port_de_fin)==false) // Si ce n'est pas un nombre
  • scan_erreur(11);
  • if ($scan_port_de_depart<=0)
  • scan_erreur(5);
  • if ($scan_port_de_fin>65535)
  • scan_erreur(6);
  • if ($scan_port_de_depart>$scan_port_de_fin)
  • scan_erreur(7);
  • if ($scan_port_de_fin-$scan_port_de_depart>20)
  • scan_erreur(9);
  • // **********************************************
  • // Affichage du titre
  • // **********************************************
  • echo '
  • <p class="titre-principal">
  • Scanner de ports TCP
  • </p>
  • <BR>
  • <p class="chapitre---texte-de-niveau-1">
  • Voici les résultats du Scan de l\'adresse IP '.$scan_adresse_ip.' entre le port '.$scan_port_de_depart.' et '.$scan_port_de_fin.'
  • <BR>
  • <BR>
  • ';
  • // **********************************************
  • // Boucle lancant les appels du script de scan port par port
  • // **********************************************
  • for ($i=$scan_port_de_depart;$i<$scan_port_de_fin+1;$i++)
  • {
  • echo '<script src="scan2.php?host='.$scan_adresse_ip.'&port='.$i.'"></script>';
  • }
  • echo '</p>';
  • // ********************************************
  • // Fin du script général
  • // ********************************************
  • fin_du_script();
  • // ********************************************
  • // Fonction de gestion des erreurs
  • // ********************************************
  • function scan_erreur($erreur) // $erreur représente le numéro d'erreur.
  • {
  • // ********************************************
  • // Affichage de titre
  • // ********************************************
  • echo
  • '
  • <p class="titre-principal">
  • Erreur
  • </p>
  • ';
  • // ********************************************
  • // Affichage de l'erreur
  • // ********************************************
  • echo '<p class="chapitre---texte-de-niveau-1">';
  • // ********************************************
  • // Message personnalisé
  • // ********************************************
  • if ($erreur==1)
  • echo 'Le Scan ne peux pas avoir lieu car le champ IP est vide.';
  • elseif ($erreur==2)
  • echo 'Le Scan ne peux pas avoir lieu car le champ Port de début est vide.';
  • elseif ($erreur==3)
  • echo 'Le Scan ne peux pas avoir lieu car le champ Port de fin est vide.';
  • elseif ($erreur==4)
  • echo 'Le Scan ne peux pas avoir lieu car le champ IP ne contient pas d\'adresse valide.';
  • elseif ($erreur==5)
  • echo 'Le Scan ne peux pas avoir lieu car le champ Port de début est inférieur ou égale à 0.';
  • elseif ($erreur==6)
  • echo 'Le Scan ne peux pas avoir lieu car le champ Port de fin est suppérieur à 65535.';
  • elseif ($erreur==7)
  • echo 'Le Scan ne peux pas avoir lieu car le champ Port de début est suppérieur au port de fin.';
  • elseif ($erreur==9)
  • echo 'Le Scan ne peux pas avoir lieu car vous demandez de scanner plus de 20 ports.';
  • elseif ($erreur==10)
  • echo 'Les donnees du champ port de depart ne reprensente pas un nombre.';
  • elseif ($erreur==11)
  • echo 'Les donnees du champ port de fin ne represente pas un nombre.';
  • // ********************************************
  • // Fin du script général
  • // ********************************************
  • echo '<br><br>';
  • fin_du_script();
  • }
  • function fin_du_script()
  • {
  • // ********************************************
  • // Affiche de l'Url
  • // ********************************************
  • echo
  • '
  • <a target="_blank" href="http://www.frameip.com">
  • www.frameip.com
  • </a>
  • </p>
  • ';
  • // ********************************************
  • // Fin de la page Html
  • // ********************************************
  • echo
  • '
  • </body>
  • </html>
  • ';
  • // ********************************************
  • // Fin du script général
  • // ********************************************
  • exit(0);
  • }
  • ?>
  • <?
  • // ********************************************
  • // Nom du script : scan2.php
  • // Auteur : _SebF AT frameIP.com
  • // date de création : 29 Novembre 2003
  • // version : 2.1
  • // Licence : Ce script est libre de toute utilisation.
  • // La seule condition existante est de faire référence au site http://www.frameip.com afin de respecter le travail d'autrui.
  • // ********************************************
  • // **********************************************
  • // Interdiction de la mise en cache
  • // **********************************************
  • header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
  • header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
  • header("Cache-Control: no-cache, must-revalidate");
  • header("Pragma: no-cache");
  • // **********************************************
  • // Suppression des warning et erreurs si la session tcp ne monte pas
  • // **********************************************
  • error_reporting(0);
  • // **********************************************
  • // Ouverture de session tcp
  • // **********************************************
  • $socket=fsockopen($host, $port, &$errno, &$errstr, 1);
  • if ($socket)
  • {
  • // **********************************************
  • // La session s'est bien ouverte
  • // **********************************************
  • $nombre_de_port_ouvert++;
  • fclose($socket);
  • echo "document.write('<BR>Le port TCP $port est ouvert');";
  • }
  • else
  • // **********************************************
  • // La session ne s'est pas ouverte
  • // **********************************************
  • echo "document.write('<BR>Le port TCP $port est fermé $nombre_de_port_scanne');";
  • ?>
<?

// ********************************************
// Nom du script : scan.php
// Auteur : _SebF AT frameIP.com
// date de création : 07 Novembre 2003
// version : 2.1
// Licence : Ce script est libre de toute utilisation.
// La seule condition existante est de faire référence au site http://www.frameip.com afin de respecter le travail d'autrui.
// ********************************************

// ********************************************
// Affichage de l'entete html
// ********************************************
echo
	'
	<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

	<html>

	<head>

	<LINK REL="StyleSheet" HREF="../style.css" TYPE="text/css">

	<title>FrameIP, Pour ceux qui aiment IP - Script Scan</title>

	<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
	<META NAME="AUTHOR" CONTENT="www.frameip.com">
	<META NAME="COPYRIGHT" CONTENT="Copyright (c) 2003 by framip">
	<META NAME="KEYWORDS" CONTENT="scan, online, outil, tcp, udp, port, destination, ouvert ferme, session, valider, validation, securite">
	<META NAME="DESCRIPTION" CONTENT="Frameip, pour ceux qui aiment IP - Script Scan">
	<META NAME="ROBOTS" CONTENT="INDEX, FOLLOW">
	<META NAME="REVISIT-AFTER" CONTENT="1 DAYS">
	<META NAME="RATING" CONTENT="GENERAL">
	<META NAME="GENERATOR" CONTENT="powered by frameip.com - webmaster@frameip.com">
	
	</head>

	<body>
	';

// **********************************************
// Récupération des variables POST
// **********************************************
$scan_adresse_ip = $_POST['ipaddress'];
$scan_port_de_depart = $_POST['port1'];
$scan_port_de_fin = $_POST['port2'];

// ********************************************
// Vérification du champ IP
// ********************************************
if (empty($scan_adresse_ip))
	scan_erreur(1);	
if ($scan_adresse_ip==0)
	scan_erreur(4);	
if (ip2long($scan_adresse_ip)==-1) // Vérification de la conformité de l'IP
	scan_erreur(4);	
else
	{
	// Transforme les saisies tel que 10.10..4 en 10.10.0.4
	$inetaddr=ip2long($scan_adresse_ip);
	$scan_adresse_ip=long2ip($inetaddr);
	}

// ********************************************
// Vérification des champs ports
// ********************************************
if (empty($scan_port_de_depart))
	scan_erreur(2);	
if (empty($scan_port_de_fin))
	scan_erreur(3);
if (is_numeric($scan_port_de_depart)==false) // Si ce n'est pas un nombre
	scan_erreur(10);
if (is_numeric($scan_port_de_fin)==false) // Si ce n'est pas un nombre
	scan_erreur(11);
if ($scan_port_de_depart<=0)
	scan_erreur(5);
if ($scan_port_de_fin>65535)
	scan_erreur(6);
if ($scan_port_de_depart>$scan_port_de_fin)
	scan_erreur(7);
if ($scan_port_de_fin-$scan_port_de_depart>20)
	scan_erreur(9);

// **********************************************
// Affichage du titre
// **********************************************
echo 	'
	<p class="titre-principal">
		Scanner de ports TCP
	</p>
	<BR>
	<p class="chapitre---texte-de-niveau-1">
		Voici les résultats du Scan de l\'adresse IP '.$scan_adresse_ip.' entre le port '.$scan_port_de_depart.' et '.$scan_port_de_fin.'
	<BR>
	<BR>
	';

// **********************************************
// Boucle lancant les appels du script de scan port par port
// **********************************************
for ($i=$scan_port_de_depart;$i<$scan_port_de_fin+1;$i++)
	{
	echo '<script src="scan2.php?host='.$scan_adresse_ip.'&port='.$i.'"></script>';
	}
	echo '</p>';

// ********************************************
// Fin du script général
// ********************************************
fin_du_script();

// ********************************************
// Fonction de gestion des erreurs
// ********************************************
function scan_erreur($erreur) // $erreur représente le numéro d'erreur.
	{
	// ********************************************
	// Affichage de titre
	// ********************************************
	echo
		'
		<p class="titre-principal">
			Erreur
		</p>
		';

	// ********************************************
	// Affichage de l'erreur
	// ********************************************
	echo	'<p class="chapitre---texte-de-niveau-1">';

	// ********************************************
	// Message personnalisé
	// ********************************************
	if ($erreur==1)
		echo 'Le Scan ne peux pas avoir lieu car le champ IP est vide.';
	elseif ($erreur==2)
		echo 'Le Scan ne peux pas avoir lieu car le champ Port de début est vide.';
	elseif ($erreur==3)
		echo 'Le Scan ne peux pas avoir lieu car le champ Port de fin est vide.';
	elseif ($erreur==4)
		echo 'Le Scan ne peux pas avoir lieu car le champ IP ne contient pas d\'adresse valide.';
	elseif ($erreur==5)
		echo 'Le Scan ne peux pas avoir lieu car le champ Port de début est inférieur ou égale à 0.';
	elseif ($erreur==6)
		echo 'Le Scan ne peux pas avoir lieu car le champ Port de fin est suppérieur à 65535.';
	elseif ($erreur==7)
		echo 'Le Scan ne peux pas avoir lieu car le champ Port de début est suppérieur au port de fin.';
	elseif ($erreur==9)
		echo 'Le Scan ne peux pas avoir lieu car vous demandez de scanner plus de 20 ports.';
	elseif ($erreur==10)
		echo 'Les donnees du champ port de depart ne reprensente pas un nombre.';
	elseif ($erreur==11)
		echo 'Les donnees du champ port de fin ne represente pas un nombre.';

	// ********************************************
	// Fin du script général
	// ********************************************
	echo '<br><br>';
	fin_du_script();
	}

function fin_du_script()
	{
	// ********************************************
	// Affiche de l'Url
	// ********************************************
	echo
		'
			<a target="_blank" href="http://www.frameip.com">
				www.frameip.com
			</a>
		</p>
		';

	// ********************************************
	// Fin de la page Html
	// ********************************************
	echo
		'
		</body>

		</html>
		';

	// ********************************************
	// Fin du script général
	// ********************************************
	exit(0);
	}

?>




<? 

// ********************************************
// Nom du script : scan2.php
// Auteur : _SebF AT frameIP.com
// date de création : 29 Novembre 2003
// version : 2.1
// Licence : Ce script est libre de toute utilisation.
// La seule condition existante est de faire référence au site http://www.frameip.com afin de respecter le travail d'autrui.
// ********************************************

// **********************************************
// Interdiction de la mise en cache
// **********************************************
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");

// **********************************************
// Suppression des warning et erreurs si la session tcp ne monte pas
// **********************************************
error_reporting(0);

// **********************************************
// Ouverture de session tcp
// **********************************************
$socket=fsockopen($host, $port, &$errno, &$errstr, 1);

if ($socket)
	{
	// **********************************************
	// La session s'est bien ouverte
	// **********************************************
	$nombre_de_port_ouvert++;
	fclose($socket);
	echo "document.write('<BR>Le port TCP $port est ouvert');";
	}
else
	// **********************************************
	// La session ne s'est pas ouverte
	// **********************************************
	echo "document.write('<BR>Le port TCP $port est fermé      $nombre_de_port_scanne');";


?>

 Conclusion


Vennez voir le fonctionnement ici :
http://www.frameip.com/scan/

------------------ ----
_SebF
http://www.frameip.com
Pour ceux qui aiment TCPIP
----------------------

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip MESURER LE DÉBIT DE LA BANDE PASSANTE
Source avec Zip CRÉATION D'ALERTES DANS LE FORUM PHPBB
Source avec Zip RSS - LES 5 DERNIERS POST DE PHPBB
Source avec Zip LIST UN REPERTOIRE ET CRÉE LES LIENS HTML
Source avec Zip SUPERVISION DES PORTS OUVERTS - SCAN TCP

 Sources de la même categorie

Source avec Zip Source avec une capture CAPTCHA AJAX ANTI-BOT par darkvador59
Source avec Zip Source avec une capture ACCÈS, ESPACE MEMBRE AVEC INSCRIPTION ET DÉSINSCRIPTION PAR ... par stephelle
Source avec Zip CRYPTAGE REVERSIBLE par Mokost
Source avec Zip Source avec une capture CREATION DE COMPTE AVEC CRYPTAGE ET ESPACE DE CONNEXION SEC... par bm1982
PROTÉGEZ VOS LIENS DE TÉLÉCHARGEMENT PAR MOT DE PASSE ET/OU ... par unlien

Commentaires et avis

Commentaire de defkrie le 18/06/2004 08:43:42

Perso jobtiens ceci pour scan.php
Notice: Undefined index: ipaddress in c:\program files\easyphp1-7\www\nouveau\port\scan.php on line 45

Notice: Undefined index: port1 in c:\program files\easyphp1-7\www\nouveau\port\scan.php on line 46

Notice: Undefined index: port2 in c:\program files\easyphp1-7\www\nouveau\port\scan.php on line 47

Erreur

Le Scan ne peux pas avoir lieu car le champ IP est vide.

et ceci pour scan2.php
Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of fsockopen(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in c:\program files\easyphp1-7\www\nouveau\port\scan2.php on line 28

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of fsockopen(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in c:\program files\easyphp1-7\www\nouveau\port\scan2.php on line 28
document.write('
Le port TCP est fermé ');

Commentaire de _sebf le 18/06/2004 19:58:31

Salut,

Les premières erreurs viennent du fait qu'il faut initialiser les variables. Tu trouveras l'explication sur le site d'Easyphp à l'adresse suivante :
http://www.easyphp.org/forums/read.php?f=7&i=94361&t=94361

Pour les dernières erreurs, tu as besoin de modifier ton .ini. Cela est aussi expliqué sur le site d'easyphp à l'adresse suivante :

http://www.easyphp.org/forums/read.php?f=7&i=76995&t=76920

@+

_SebF

http://www.frameip.com
Pour ceux qui aiment TCPIP

Commentaire de D4rkXtaL le 19/06/2004 22:36:53

Salut,

d'abord un grand bravo pour ce script qui fonctionne merveilleusement bien.
Ensuite une question : Y-at-il moyen de lui faire accepter la saisie de dns et de lui imposer une série définie de ports à scanner et non pas une plage.
Exemple : www.monsite.com  ports : 21, 23, 25, 80

En fait j'aimerais me servir de ce scanner pour tester la présence "online" de mes différents serveurs. Il serait accessible à tout le monde via une page perso sur Free. Celà donnerait à peu près ça au chargement de la page :
-Machine01 (www.monsite01.com) :
        web : ok
        mail : ok
        ftp : ok
-Machine02 (www.monsite02.com) :
        web : ok
        mail : offline
        ftp : ok
-Machine03 (www.monsite03.com) etc.....


euh... je précise que je suis nul en php :'(

Commentaire de _sebf le 20/06/2004 00:43:50

OK,

J'ai publié un autre code afin de réaliser ce que tu voulais. Il test quatres serveurs avec résolution des noms. tu trouveras ce code ici :

http://www.phpcs.com/code.aspx?ID=23835

_SebF

http://www.frameip.com
Pour ceux qui aiment TCPIP

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales