En tant que “novice” (ça fait 3 ans que j’essaye de faire quelque chose en informatique!!!), je voulais avoir 2-3 renseignements (enfin, je ne les ai pas compter…):D.
Probleme:
J’ai un utilisateurs, il peut choisir une adresse IP automatiquement (donc la machine lui sort une adresse IP) ou manuellement.
J’ai réussi à traiter l’option manuel:
Code qui permet de vérifier si l’entrée de l’utilisateur est bonne
// attention, c'est du haut niveau...
function verif()
{
var expr = /^(((22[4-9]|23[0-9])\.)((25[0-4]|2[0-4][0-9]|[1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])\.)((25[0-4]|2[0-4][0-9]|[1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.)((25[0-4]|2[0-4][0-9]|[1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9]))$)/;
var chaine = document.getElementById('adrMan').value ; //j'aimerais pouvoir récupérer ce que l'utilisateur à entrer....
if(!expr.exec(chaine))
{
alert('adresse non valide : sélectionnez une adresse entre 224.0.1.0 et 239.254.254.254');
champ.focus();
}
else
{alert('adresse valide')}
}
et voilà le petit formulaire pour l’entrrée de l’utilisateurs
d’accord, pour le moment, ce n’est pas utile de savoir ça surement.
Mais voilà, il faut que je puisse “sortir” une adresse IP appartenant à la plage 224.0.1.0-239.254.254.254, de plus, il faut que cette adresse ne soit pas dans une mes table de ma “future” base de donnée.
J’ai penser créer une table IP où je pouvais rentrer les adresse possible, mais c’est ridicule car, table trop grande et pour rien.
Après j’ai penser à de l’incrémentation, mais les “.” me dérange et la délimitation aussi.
Et après, j’ai arrêter de penser car j’ai fait le tour des zones de mon cerveau sans résultats…
Donc si quelqu’un avec une idée, une pensée, un code??? je prends tout.
Cela te donne l’entier ad hoc. Tu auras normalement deux entiers associés pour lesquels tu peux tester facilement le range, et aussi en additionnant un nombre quelconque chopper une ip aléatoire.
Note: ne gère pas très bien les cas lipotropes (en javascript/java/php/etc, un entier est forcément signé, ce qui fait que tu peux avoir quelques problèmes)
Je suis en stage, et je dois créer un formulaire permettant à l’entreprise de rentrer des données dans une base.
L’entreprise travaillant dans le domaine télévisuel, ils ont à gérer beaucoup d’adresse IP ou milticast. Donc soit ils enregistrent leur chaine ave l’adresse IP qu’ils connaissent déjà (manuel), soit ils en prennent une de libre (soit auto), sachant qu’une adresse peut contenir plusieurs chaine (MPTS).
Sachant que les adresses doivent faire partie de la plage 224.0.1.0-239.254.254.254.
Mais j’ai trouver comment faire pour sortir une adresse ip aléatoire, en utilisant l’incrémentation.
include ("connect.php");
include ("Controleur.php");
$ip = "224.0.1.0";
//récupère les lignes de la table informations
$Multicasts = GetListeMulticasts();
//affichage ligne par ligne
$UnMulticast = GetLigne($Multicasts);
while($UnMulticast)
{
$suivante = long2ip(ip2long($ip));
if($unMulticast['Multicast']==$ip)
{
$ip=$suivante;
}
$UnMulticast=GetLigne($Multicasts);
}
return $ip;
long2ip transforme un nombre en adresse ip
et ip2long une adresse ip en nombre
include ("connect.php");
if (!Connecter()) {
echo "Echec de la connexion à la base de données";
exit; // fait échouer tout le reste du script
}
//Récupere les lignes de la table information triés par multicast
function GetListeMulticasts(){
$MonSQL= "SELECT * FROM information ORDER BY Multicast";
$CurseurMulticast = mysql_query($MonSQL);
return $CurseurMulticast;
et
function GetLigne($Curseur) {
// fournit une ligne du curseur passé en paramètre
$Ligne=mysql_fetch_array($Curseur);
return $Ligne;
}
Il ne reste plus qu’à limiter au maximum l’adresse ip à 239.254.254.254
Edité le 18/08/2008 à 10:43