Re-adressage IP

\n"; echo "

Adresse reseau:
\n"; echo "Nombre de classes de 256 machines:
\n"; echo "Laisser IP libres en debut de liste (*)
\n"; //echo "Trier les machines ordre alphabetique: \n"; echo "
\n"; echo "
\n"; echo "
\n"; echo "

\n"; echo "

Veuillez fournir le fichier CSV des noms de machines et adresses MAC:
\n"; echo " \n"; echo "

\n"; echo "\n"; echo "

(*) pour par exemple réserver la première classe C aux serveurs, imprimantes sur ip, vidéoprojecteurs sur ip,...
Les 15 premières adresses sont de toutes façons réservées.

\n"; } elseif($step==1) { $csv_file = isset($_FILES["file_name"]) ? $_FILES["file_name"] : NULL; if(!is_uploaded_file($csv_file['tmp_name'])) { echo "

Erreur 1

\n"; } else { $source_file=$csv_file['tmp_name']; $dest_file=$source_file; $fp=fopen($dest_file,"r"); if(!$fp){ echo "

Erreur 2

\n"; } else { $nb_ip_libres=isset($_POST['nb_ip_libres']) ? $_POST['nb_ip_libres'] : 0; $tab=array(); if($tri_machines=='') { $cpt=$nb_ip_libres; while(!feof($fp)){ $ligne=trim(fgets($fp,4096)); if($ligne!="") { $tab_tmp=explode(";", $ligne); // On modifie l'ordre des champs pour trier par la suite sur le premier champ: NOM_NETBIOS $tab[$cpt][0]=strtoupper($tab_tmp[1]); $tab[$cpt][1]=$tab_tmp[0]; $tab[$cpt][2]=$tab_tmp[2]; $cpt++; } } $tab2=array(); $tab2=$tab; } elseif($tri_machines=='netbios') { $cpt=0; while(!feof($fp)){ $ligne=trim(fgets($fp,4096)); if($ligne!="") { $tab_tmp=explode(";", $ligne); // On modifie l'ordre des champs pour trier par la suite sur le premier champ: NOM_NETBIOS $tab[$cpt][0]=strtoupper($tab_tmp[1]); $tab[$cpt][1]=$tab_tmp[0]; $tab[$cpt][2]=$tab_tmp[2]; $cpt++; } } // On trie par nom de machine /* $tab2=array(); $tab2=$tab; sort($tab2); */ sort($tab); $tab2=array(); for($loop=0;$loop<$nb_ip_libres;$loop++) {$tab2[]="";} for($loop=0;$loop"; echo "\$tab[$cpt][0]=".$tab[$cpt][0]."
"; echo "\$tab[$cpt][1]=".$tab[$cpt][1]."
"; echo "\$tab[$cpt][2]=".$tab[$cpt][2]."
"; echo "\$tab[$cpt][3]=".$tab[$cpt][3]."

"; */ $cpt++; } } // On trie par adresse IP //natsort($tab); /* echo "
"; foreach($tab_num as $key => $value) { echo "\$tab_num[$key]=".$value."
"; } echo "
"; */ $tab_num2=$tab_num; sort($tab_num2); /* foreach($tab_num2 as $key => $value) { echo "\$tab_num2[$key]=".$value."
"; } echo "
"; */ $tab_num3=array_flip($tab_num); /* foreach($tab_num3 as $key => $value) { echo "\$tab_num3[$key]=".$value."
"; } */ $tab2=array(); for($loop=0;$loop<$nb_ip_libres;$loop++) {$tab2[]="";} $cpt=$nb_ip_libres; foreach($tab_num2 as $key => $value) { $tab2[$cpt]=array(); $tab2[$cpt][0]=$tab[$tab_num3[$value]][1]; $tab2[$cpt][1]=$tab[$tab_num3[$value]][3]; $tab2[$cpt][2]=$tab[$tab_num3[$value]][2]; /* echo "

"; echo "\$tab2[$cpt][0]=".$tab2[$cpt][0]."
"; echo "\$tab2[$cpt][1]=".$tab2[$cpt][1]."
"; echo "\$tab2[$cpt][2]=".$tab2[$cpt][2]."

"; */ $cpt++; } } } fclose($fp); /* echo "\n"; for($i=0;$i\n"; } echo "
".$tab[$i][0]."".$tab[$i][1]."".$tab[$i][2]."
\n"; echo "


\n"; */ function tip($ip) { $tab=explode(".",$ip); $tip=256*256*256*$tab[0]+256*256*$tab[1]+256*$tab[2]+$tab[3]; return $tip; } function ip($tip) { $ip1=floor($tip/(256*256*256)); $ip2=floor(($tip-$ip1*256*256*256)/(256*256)); $ip3=floor(($tip-$ip1*256*256*256-$ip2*256*256)/256); $ip4=$tip-$ip1*256*256*256-$ip2*256*256-$ip3*256; $ip="$ip1.$ip2.$ip3.$ip4"; return $ip; } function dernier_octet($ip) { $tab=explode(".",$ip); return $tab[3]; } echo "\n"; /* // On trie par nom de machine $tab2=$tab; if($tri_nom_netbios=='y') { sort($tab2); } */ $nb_classes=isset($_POST['nb_classes']) ? $_POST['nb_classes'] : 4; if($nb_classes=="") {$nb_classes=4;} elseif(strlen(preg_replace("/[0-9]/","",$nb_classes))!=0) {$nb_classes=4;} elseif($nb_classes==0) {$nb_classes=4;} // Nombre d'IP dispo... il faudra quand meme exclure la derniere en 255 qui correspond au broadcast $total=$nb_classes*256-15; $ip=isset($_POST['ip']) ? $_POST['ip'] : "172.16.1.0"; // On commence a 15 pour garder de l'espace en debut de classe IP pour les serveurs $ip=ip(tip($ip)+15); $tip=tip($ip); //echo "\$ip=$ip
"; //echo "\$tip=$tip
"; //die(); //echo "
\n"; //echo "
\n"; echo "

Effectuez le re-adressage en prévoyant quelques IP libres entre les machines de differentes salles.

"; echo "

NOTE: Les liens javascript d'insertion/suppression sont un peu longs à réagir lors du premier clic.
Mais cela devient plus fluide pour les clics suivants.

\n"; echo "
\n"; echo "
\n"; echo "\n"; echo "\n"; echo "\n"; //for($i=0;$i\n"; echo "\n"; if(isset($tab2[$i][0])) { echo "\n"; echo "\n"; echo "\n"; } else { echo "\n"; echo "\n"; echo "\n"; } echo "\n"; echo "\n"; $ip=ip(tip($ip)+1); if(dernier_octet($ip)==0) { echo "\n"; } } echo "
IP
future
NomIP
actuelle
MACAction
\n"; if($i==$nb_ip_libres) {echo "";} echo $ip; echo "\n"; echo ""."".$tab2[$i][0]."\n"; echo "\n"; echo ""."".$tab2[$i][1]."\n"; echo "\n"; echo ""."".$tab2[$i][2]."\n"; echo "\n"; echo ""." "."\n"; echo "\n"; echo ""." "."\n"; echo "\n"; echo ""." "."\n"; echo "\n"; echo "\n"; echo "Inserer / Supprimer"; echo "
 
\n"; echo "\n"; echo "
\n"; echo "\n"; echo "
\n"; echo "
\n"; echo "
\n"; } } elseif($step==2) { } ?>