Sortir une adresse IP aléatoire pour bdd
Résolu
MiWi86-33
Messages postés
142
Date d'inscription
Statut
Membre
Dernière intervention
-
pyschopathe -
pyschopathe -
Bonjour,
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.
Merci d'avance.
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 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 ; 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
<div id="formSelectMan" style="display:none"> <br /> <input name="adrMan" type="text" id="adrMan" value="Entrez l'adresse" size="15" /> <input name="vue" type="button" value="Vérifier" onclick="verif()" /> </div>
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.
Merci d'avance.
A voir également:
- Sortir une adresse IP aléatoire pour bdd
- Ethernet n'a pas de configuration ip valide - Guide
- Comment connaître son adresse ip - Guide
- Darkino nouvelle adresse - Guide
- Adresse mac - Guide
- Comment savoir si quelqu'un utilise mon adresse ip - Guide
6 réponses
Et si tu prenais l'adresse au format hexadécimal, ce ne serait pas plus simple de faire un incrémentation ? Pour afficher l'adresse au format "classique", tu n'as ensuite plus qu'à regrouper les valeurs hexadécimales par 2. (je dis ça un peu au hasard, d'intuition...)
j'y ai pensé à l'incrémentation mais faut stopper à 254 à chaque octet...
En fait, je pensais qu'il serait plus facile de travailler sur l'adresse convertie en hexadécimale, mais mon idée suppose beaucoup de conversions :
- tu convertis l'adresse en hexa (fonction dechex sur chacune des quatre parties de l'adresse)
- tu convertis la valeur hexadécimale obtenue en décimale (hexdec)
- tu incrémentes
- tu reconvertis en hexa (dechex)
- tu split la valeur obtenue en blocs de deux
- tu convertis ces blocs en décimal
J'imagine qu'il doit y avoir une méthode plus directe mais je ne l'ai pas en tête...
- tu convertis l'adresse en hexa (fonction dechex sur chacune des quatre parties de l'adresse)
- tu convertis la valeur hexadécimale obtenue en décimale (hexdec)
- tu incrémentes
- tu reconvertis en hexa (dechex)
- tu split la valeur obtenue en blocs de deux
- tu convertis ces blocs en décimal
J'imagine qu'il doit y avoir une méthode plus directe mais je ne l'ai pas en tête...
ah ouai en effet, ça fait beaucoup de conversion et ça peut être long, mais l'idée est bonne j'avoue. enfin je crois...
Salut,
Pourquoi ne pas utiliser les fonctions PHP ip2long et long2ip ? Elles permettent entre autres simplement :
- de valider une IP 'chaine' :
- d'incrémenter une IP :
Pourquoi ne pas utiliser les fonctions PHP ip2long et long2ip ? Elles permettent entre autres simplement :
- de valider une IP 'chaine' :
if($ip == long2ip(ip2long($ip))
- d'incrémenter une IP :
$ip = '192.168.0.56'; $suivante = long2ip(ip2long($ip)+1);
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question