// ******************************************** // Affichage de l'entete html // ******************************************** echo ' Script Masque '; // ******************************************** // 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); // ******************************************** // Convertion du masque // ******************************************** switch ($calcul_mask) { case 1: $calcul_chaine_mask="128.0.0.0"; break; case 2: $calcul_chaine_mask="192.0.0.0"; break; case 3: $calcul_chaine_mask="224.0.0.0"; break; case 4: $calcul_chaine_mask="240.0.0.0"; break; case 5: $calcul_chaine_mask="248.0.0.0"; break; case 6: $calcul_chaine_mask="252.0.0.0"; break; case 7: $calcul_chaine_mask="254.0.0.0"; break; case 8: $calcul_chaine_mask="255.0.0.0"; break; case 9: $calcul_chaine_mask="255.128.0.0"; break; case 10: $calcul_chaine_mask="255.192.0.0"; break; case 11: $calcul_chaine_mask="255.224.0.0"; break; case 12: $calcul_chaine_mask="255.240.0.0"; break; case 13: $calcul_chaine_mask="255.248.0.0"; break; case 14: $calcul_chaine_mask="255.252.0.0"; break; case 15: $calcul_chaine_mask="255.254.0.0"; break; case 16: $calcul_chaine_mask="255.255.0.0"; break; case 17: $calcul_chaine_mask="255.255.128.0"; break; case 18: $calcul_chaine_mask="255.255.192.0"; break; case 19: $calcul_chaine_mask="255.255.224.0"; break; case 20: $calcul_chaine_mask="255.255.240.0"; break; case 21: $calcul_chaine_mask="255.255.248.0"; break; case 22: $calcul_chaine_mask="255.255.252.0"; break; case 23: $calcul_chaine_mask="255.255.254.0"; break; case 24: $calcul_chaine_mask="255.255.255.0"; break; case 25: $calcul_chaine_mask="255.255.255.128"; break; case 26: $calcul_chaine_mask="255.255.255.192"; break; case 27: $calcul_chaine_mask="255.255.255.224"; break; case 28: $calcul_chaine_mask="255.255.255.240"; break; case 29: $calcul_chaine_mask="255.255.255.248"; break; case 30: $calcul_chaine_mask="255.255.255.252"; break; case 31: $calcul_chaine_mask="255.255.255.254"; break; case 32: $calcul_chaine_mask="255.255.255.255"; break; default : $calcul_chaine_mask="255.255.255.255"; break; } // ******************************************** // 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' entrez l\'IP:
Ip:
'; 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() { // Fin de la page Html // ******************************************** echo ' '; // Fin du script général // ******************************************** exit(0); } ?>