// ********************************************
// 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:
';
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);
}
?>