Service MASQUE DE SOUS-RESEAU
"; //** echo "Masque: ".$calcul_mask."
"; //** echo "CIDR: ".$calcul_cidr."
"; //** $calcul_adresse_ip = "192.168.1.0"; //** $calcul_mask = "24"; //** $subnet_mask = "255.255.0.0"; // ********************************************** // Caclcul des masques réseau à partir de son adresse IP et de son masque // ********************************************** $ip = ip2long($calcul_adresse_ip); $nm = ip2long($calcul_cidr); $nw = ($ip & $nm); $bc = $nw | (~$nm); // ********************************************** // 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"); if ($calcul_mask != "") { // ********************************************** // 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

'; */ //** $calcul_adresse_ip = "91.198.174.2"; // ******************************************** // Calcul de la classe d'adresse ip // ******************************************** if ($calcul_adresse_ip > "0.0.0.0" && $calcul_adresse_ip < "126.255.255.255") { $classe_ip = "A"; } if ($calcul_adresse_ip > "128.0.0.0" && $calcul_adresse_ip < "191.255.255.255") { $classe_ip = "B"; } if ($calcul_adresse_ip > "192.0.0.0" && $calcul_adresse_ip < "223.255.255.255") { $classe_ip = "C"; } if ($calcul_adresse_ip > "224.0.0.0" && $calcul_adresse_ip < "239.255.255.255") { $classe_ip = "D"; } if ($calcul_adresse_ip > "240.0.0.0" && $calcul_adresse_ip < "255.255.255.255") { $classe_ip = "E"; } // ******************************************** // Fonction IPV4 -> Binaire // ******************************************** function format_bin($string) { $string_explode = explode(".", $string); $string1 = decbin($string_explode[0]); $string2 = decbin($string_explode[1]); $string3 = decbin($string_explode[2]); $string4 = decbin($string_explode[3]); $nb_string = strlen($string1); if ($nb_string == "1") { $string1 = "0000000".$string1; } if ($nb_string == "2") { $string1 = "000000".$string1; } if ($nb_string == "3") { $string1 = "00000".$string1; } if ($nb_string == "4") { $string1 = "0000".$string1; } if ($nb_string == "5") { $string1 = "000".$string1; } if ($nb_string == "6") { $string1 = "00".$string1; } if ($nb_string == "7") { $string1 = "0".$string1; } if ($nb_string == "8") { $string1 = $string1; } //** $string1 = chunk_split($string1,4,' '); $nb_string = strlen($string2); if ($nb_string == "1") { $string2 = "0000000".$string2; } if ($nb_string == "2") { $string2 = "000000".$string2; } if ($nb_string == "3") { $string2 = "00000".$string2; } if ($nb_string == "4") { $string2 = "0000".$string2; } if ($nb_string == "5") { $string2 = "000".$string2; } if ($nb_string == "6") { $string2 = "00".$string2; } if ($nb_string == "7") { $string2 = "0".$string2; } if ($nb_string == "8") { $string2 = $string2; } //** $string2 = chunk_split($string2,4,' '); $nb_string = strlen($string3); if ($nb_string == "1") { $string3 = "0000000".$string3; } if ($nb_string == "2") { $string3 = "000000".$string3; } if ($nb_string == "3") { $string3 = "00000".$string3; } if ($nb_string == "4") { $string3 = "0000".$string3; } if ($nb_string == "5") { $string3 = "000".$string3; } if ($nb_string == "6") { $string3 = "00".$string3; } if ($nb_string == "7") { $string3 = "0".$string3; } if ($nb_string == "8") { $string3 = $string3; } //** $string3 = chunk_split($string3,4,' '); $nb_string = strlen($string4); if ($nb_string == "1") { $string4 = "0000000".$string4; } if ($nb_string == "2") { $string4 = "000000".$string4; } if ($nb_string == "3") { $string4 = "00000".$string4; } if ($nb_string == "4") { $string4 = "0000".$string4; } if ($nb_string == "5") { $string4 = "000".$string4; } if ($nb_string == "6") { $string4 = "00".$string4; } if ($nb_string == "7") { $string4 = "0".$string4; } if ($nb_string == "8") { $string4 = $string4; } //** $string4 = chunk_split($string4,4,' '); $string1 = chunk_split($string1,8,'.'); $string2 = chunk_split($string2,8,'.'); $string3 = chunk_split($string3,8,'.'); $string = $string1.$string2.$string3.$string4; return $string; } // ******************************************** // Fonction IPV4 -> IPV6 // ******************************************** function format_hex($string) { $string_explode = explode(".", $string); $string1 = dechex($string_explode[0]); $string2 = dechex($string_explode[1]); $string3 = dechex($string_explode[2]); $string4 = dechex($string_explode[3]); $nb_string = strlen($string1); if ($nb_string == "1") { $string1 = "0".$string1; } $nb_string = strlen($string2); if ($nb_string == "1") { $string2 = "0".$string2; } $nb_string = strlen($string3); if ($nb_string == "1") { $string3 = "0".$string3; } $nb_string = strlen($string4); if ($nb_string == "1") { $string4 = "0".$string4; } $string = strtoupper($string1.$string2.":".$string3.$string4); //** $string = strtoupper(chunk_split($string,4,':')); return $string; } // ******************************************** // Fonction IPV4 -> Octal // ******************************************** function format_oct($string) { $string_explode = explode(".", $string); $string1 = decoct($string_explode[0]); $string2 = decoct($string_explode[1]); $string3 = decoct($string_explode[2]); $string4 = decoct($string_explode[3]); $string = strtoupper("0".$string1.".0".$string2.".0".$string3.".0".$string4); //** $string = strtoupper(chunk_split($string,4,':')); return $string; } // ******************************************** // Fonction IPV4 -> Hexadecimal // ******************************************** function format_hex2($string) { $string_explode = explode(".", $string); $string1 = dechex($string_explode[0]); $string2 = dechex($string_explode[1]); $string3 = dechex($string_explode[2]); $string4 = dechex($string_explode[3]); $nb_string = strlen($string1); if ($nb_string == "1") { $string1 = "0".$string1; } $nb_string = strlen($string2); if ($nb_string == "1") { $string2 = "0".$string2; } $nb_string = strlen($string3); if ($nb_string == "1") { $string3 = "0".$string3; } $nb_string = strlen($string4); if ($nb_string == "1") { $string4 = "0".$string4; } $string = "0x".strtoupper($string1).".0x".strtoupper($string2).".0x".strtoupper($string3).".0x".strtoupper($string4); //** $string = strtoupper(chunk_split($string,4,':')); return $string; } if ($CALCUL == "MASK") { echo ' '; if ($classe_ip != "") { echo ' '; } echo '
Les saisies
Adresse IP : '.$calcul_adresse_ip.'
Largeur du prefixe réseau : '.$calcul_mask.'
 
Les résultats
Classe d\'adresse IP : '.$classe_ip.'
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 IPv4
Décimal : '.$calcul_adresse_ip.'
Binaire : '.format_bin($calcul_adresse_ip).'
Octal : '.format_oct($calcul_adresse_ip).'
Hexadécimal : '.format_hex2($calcul_adresse_ip).'

Adresse IPv6
Adresse IP v6 : 0000:0000:0000:0000:0000:0000:'.format_hex($calcul_adresse_ip).'
: ::'.format_hex($calcul_adresse_ip).'

Adresse 6 to 4 :

0000:02002:'.format_hex($calcul_adresse_ip).':0:0:0:0:0
: 02002:'.format_hex($calcul_adresse_ip).'::

Adresse IPv4-mapped :

0:0:0:0:0:FFFF:'.$calcul_adresse_ip.'
: ::FFFF:'.$calcul_adresse_ip.'
: ::FFFF:'.format_hex($calcul_adresse_ip).'

Adresse IPv4-compatible :

0:0:0:0:0:0:'.$calcul_adresse_ip.'
: ::'.$calcul_adresse_ip.'
: ::'.format_hex($calcul_adresse_ip).'
'; } if ($CALCUL == "CIDR") { // ******************************************** // Calcul à partir d'un masque réseau // ******************************************** //** echo "IP Address: " . long2ip($ip) . "\n"; $calcul_mask = long2ip($nm); $calcul_route = long2ip($nw); $calcul_broadcast = long2ip($bc); $calcul_host = ($bc - $nw - 1); $calcul_premiere_ip = long2ip($nw + 1); $calcul_derniere_ip = long2ip($bc - 1); // ******************************************** // Calcul du cidr // ******************************************** $cidrs = $calcul_adresse_ip."/".strlen(preg_replace("/0/", "", decbin(ip2long($calcul_mask)))); $cidr_explode = explode("/", $cidrs); $notation_cidr = $cidr_explode[1]; echo ' '; if ($classe_ip != "") { echo ' '; } echo '
Les saisies
Adresse IP : '.$calcul_adresse_ip.'
Masque de sous réseau : '.$calcul_mask.'
 
Les résultats
Classe d\'adresse IP : '.$classe_ip.'
Largeur du prefixe réseau : '.$notation_cidr.' ('.$cidrs.')
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.'

Adresse IPv4
Décimal : '.$calcul_adresse_ip.'
Binaire : '.format_bin($calcul_adresse_ip).'
Octal : '.format_oct($calcul_adresse_ip).'
Hexadécimal : '.format_hex2($calcul_adresse_ip).'

Adresse IPv6
Adresse IP v6 : 0000:0000:0000:0000:0000:0000:'.format_hex($calcul_adresse_ip).'
: ::'.format_hex($calcul_adresse_ip).'

Adresse 6 to 4 :

0000:02002:'.format_hex($calcul_adresse_ip).':0:0:0:0:0
: 02002:'.format_hex($calcul_adresse_ip).'::

Adresse IPv4-mapped :

0:0:0:0:0:FFFF:'.$calcul_adresse_ip.'
: ::FFFF:'.$calcul_adresse_ip.'
: ::FFFF:'.format_hex($calcul_adresse_ip).'

Adresse IPv4-compatible :

0:0:0:0:0:0:'.$calcul_adresse_ip.'
: ::'.$calcul_adresse_ip.'
: ::'.format_hex($calcul_adresse_ip).'
'; } // ******************************************** // 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

'; */ echo '

Effectuer un nouveau calcul

'; // ******************************************** // Fin de la page Html // ******************************************** /* echo ' '; */ ?>