'; // ******************************************** // Initiation des variables // ******************************************** $calcul_adresse_ip=$_POST['IP']; $calcul_mask=$_POST['MASK']; // ********************************************** // Récupération de la date et heure // ********************************************** $annee=date("Y"); $mois=date("m"); $jour=date("d"); $heure=date("H"); $minute=date("i"); $seconde=date("s"); // ********************************************** // Récupération de l'IP cliente // ********************************************** $ip_client=getenv("REMOTE_ADDR"); // ********************************************** // Récupération du Ptr de l'IP cliente // ********************************************** $ptr=gethostbyaddr("$ip_client"); if ($ptr==$ip_client) $ptr="Pas de ptr"; // ********************************************** // Récupération du port TCP source // ********************************************** $port_source=getenv("REMOTE_PORT"); // ********************************************** // Récupération de l'IP du browser // ********************************************** $ip_browser=getenv("HTTP_X_FORWARDED_FOR"); // ******************************************** // Validation du champs IP // ******************************************** $calcul_inetaddr=ip2long($calcul_adresse_ip); $calcul_adresse_ip=long2ip($calcul_inetaddr); // ******************************************** // Vérification de la saisie // ******************************************** $erreur=0; // Initialisation if (($calcul_inetaddr==0)||($calcul_inetaddr==-1)) masque_erreur(1); if (($calcul_mask<1)||($calcul_mask>32)) masque_erreur(2); // ******************************************** // Conversion du masque // ******************************************** // Optimisation fournit par Pascal de Serveurperso.com $calcul_chaine_mask = (string) long2ip(256*256*256*256 - pow(2, 32 - $calcul_mask)); // ******************************************** // Calcul du nombre de HOST // ******************************************** if ($calcul_mask==32) $calcul_host=1; else $calcul_host=pow(2,32-$calcul_mask)-2; // ******************************************** // Calcul de la route // ******************************************** $calcul_route=$calcul_inetaddr&ip2long($calcul_chaine_mask); // Ajoute l'IP et le masque en binaire $calcul_route=long2ip($calcul_route); // Convertit l'adresse inetaddr en IP // ******************************************** // Calcul de la premiere adresse // ******************************************** if ($calcul_mask==32) $offset=0; else $offset=1; if ($calcul_mask==31) $calcul_premiere_ip="N/A"; else { $calcul_premiere_ip=ip2long($calcul_route)+$offset; $calcul_premiere_ip=long2ip($calcul_premiere_ip); } // ******************************************** // Calcul de la dernière adresse // ******************************************** if ($calcul_mask==32) $offset=-1; else $offset=0; if ($calcul_mask==31) $calcul_derniere_ip="N/A"; else { $calcul_derniere_ip=ip2long($calcul_route)+$calcul_host+$offset; $calcul_derniere_ip=long2ip($calcul_derniere_ip); } // ******************************************** // Calcul du broadcast // ******************************************** if ($calcul_mask==32) $offset=0; else $offset=1; $calcul_broadcast=ip2long($calcul_route)+$calcul_host+$offset; $calcul_broadcast=long2ip($calcul_broadcast); // ******************************************** // Présentation des résultats // ******************************************** echo '

Masque de sous réseaux

'; echo '
Les saisies  
Adresse IP : '.$calcul_adresse_ip.'
Masque de sous réseau : '.$calcul_mask.'
   
Les résultats  
Masque de sous réseau : '.$calcul_chaine_mask.'
Nombre maximum d\'hôte : '.$calcul_host.'
L\'adresse de réseau (La route) : '.$calcul_route.'
Première adresse d\'hôte : '.$calcul_premiere_ip.'
Dernière adresse d\'hôte : '.$calcul_derniere_ip.'
Adresse de broadcast : '.$calcul_broadcast.'
'; // ******************************************** // Fin du script général // ******************************************** fin_du_script(); // ******************************************** // Fonction d'affichage de l'erreur de saisie // ******************************************** function masque_erreur($erreur) // $erreur représente le numéro d'erreur. { // ******************************************** // Affichage de titre d'erreur // ******************************************** echo '

Erreur

'; echo "
"; // ******************************************** // Message personnalisé // ******************************************** switch ($erreur) { case 1: echo'Le calcul ne peux pas avoir lieu car le champ IP est vide ou non valide.'; break; case 2: echo'Le calcul ne peux pas avoir lieu car le champ MASK est vide ou non valide.'; break; } // ******************************************** // Fin du script général // ******************************************** fin_du_script(); } function fin_du_script() { // ******************************************** // Affiche de l'Url // ******************************************** echo '

www.frameip.com

'; // ******************************************** // Fin de la page Html // ******************************************** echo ' '; // ******************************************** // Fin du script général // ******************************************** exit(0); } ?>