Génération d'IP

Génération d'IP - PHP - Programmation

Marsh Posté le 20-08-2008 à 22:33:47    

Bonsoir,
 
Je viens de chercher un peu sur la toile et rien qui ne concerne mon problème...
J'aimerai pouvoir générer/attribuer une adresse IP lors de l'inscription d'une personne sur mon site.
 
Ma table :  inscription_lan
 
http://img390.imageshack.us/img390/2668/sanstitreen8.jpg
 
Je n'arrive pas à définir sur quoi me fixer pour ajouter une adress IP pour chaque inscription.
 
Exemple :
 

  • 192.168.1.2
  • 192.168.1.3
  • 192.168.1.4
  • ainsi dessuite...


---------------
-- Turns your mind towards BeTa --
Reply

Marsh Posté le 20-08-2008 à 22:33:47   

Reply

Marsh Posté le 20-08-2008 à 22:43:14    

Sur l'ID ? Si tu supprimes pas les utilisateurs ça peut marcher.. Et au cas où tu supprimes un utilisateur, tu peux faire un update en prenant celui qui a l'ID le plus élevé..


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 20-08-2008 à 22:47:28    

Bonsoir,
 
Les IP que tu propose sont des adresses non routable...Peut tu expliquer le but de ton site, histoire que l'on comprenne un peu plus ?
 
D'avance merci
CVb
 
ps : Un complément d'information. Si tu stocke des informations utilisateurs, comme le nom, le prenom, tu dois déclarer ton site à la CNIL...;)

Reply

Marsh Posté le 20-08-2008 à 23:30:42    

ça déend si tu veux le faire en amont ou en aval.
 
Si tu veux le faire en amont, c.à.d. avant la LAN, ça pourrait être bien d'associer l'IP à l'adresse MAC, et de faire les réservations dans le DHCP.
 
Si c'est pendant la LAN, une simple page PHP sur un serveur "intranet" et un print_r($_SERVER) et tu verras l'IP ...


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 21-08-2008 à 03:08:43    

@ cvb : La déclaration à la CNIL pas con surtout que je viens d'en faire une pour un autre site ^^

 

@ NewsletTux : Le formulaire est sur le net et permet l'inscription et j'aimerai attribuer une adresse IP pour chaque participant lors de l'inscription.

 

Lien : Association BeTa ~Inscription LAN Party

 

Mon problème pour me fixer sur l'id c'est qu'il faut que je récupère la dernière ...

 

New idea :

 

J'insere un premier lieu une ligne représentant un serveur (192.168.1.1)
Puis je récupère l'id et lors de chaque inscription j'incrémente la valeur de l'id que je stoque en Poste...


Message édité par wifsimster le 21-08-2008 à 03:15:15

---------------
-- Turns your mind towards BeTa --
Reply

Marsh Posté le 21-08-2008 à 07:44:40    

Heu c'est pas comme si c'était dur de récupérer l'ID hein?  
 
select max(id) from matable where 1


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 21-08-2008 à 13:17:47    

C'est bon problème résolu ;D
 

Code :
  1. $sql = "SELECT MAX(id) FROM inscriptions_lan WHERE 1";
  2.            
  3.         $result = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
  4.            
  5.         $donnees = mysql_fetch_array($result);
  6.            
  7.         $poste = $donnees["0"] + "1";
  8.         echo $poste . "<br />";
  9.            
  10.         $ip .= "192.168.1." . $poste;
  11.         echo $ip . "<br />";


Message édité par wifsimster le 21-08-2008 à 13:18:29

---------------
-- Turns your mind towards BeTa --
Reply

Marsh Posté le 21-08-2008 à 21:41:35    

et si tu as 256 participants ? :D


Message édité par NewsletTux le 21-08-2008 à 21:41:55

---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 22-08-2008 à 08:15:07    

Oué c'est un peu crade là (même si probablement, s'il fait ça avec ses potes,il aura jamais 256 adresses ... ) . Faudrait faire un peu de gestion ..
 
Et pis change ta requête en :
 
SELECT MAX(id) as maxid FROM inscriptions_lan WHERE 1
 
Parce que là ton donnees[0] c'est moche et on comprend pas :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 23-08-2008 à 17:49:11    

Je suis pas prêt d'avoir plus de 255 participants donc hein :D
Mais sinon c'est sûr, je l'améliorerai certainement plus tard pour le gérer.
 
Sinon merci pour le as maxid j'avais oublié que l'on pouvez faire comme ça, thks ;)


---------------
-- Turns your mind towards BeTa --
Reply

Marsh Posté le 23-08-2008 à 17:49:11   

Reply

Marsh Posté le 23-08-2008 à 18:50:55    

ou un truc tout simple tu as déjà une table pré remplie d'adresse ip remplie à la main et à chaque inscription tu leur files la derniere ip libre de ta table

Reply

Marsh Posté le 24-08-2008 à 10:22:02    

C'est aussi une solution, mais un peu trop grossière quand même :p


---------------
-- Turns your mind towards BeTa --
Reply

Marsh Posté le 24-08-2008 à 10:28:43    

Oui mais les solutions les plus grossières sont souvent les plus rapides / stables / puissantes.
 
Tu verais en entreprise le nombre de 'solutions grossières' mise en place qui s'avèrent être super payante au final
 
Un petit exemple sur les casinos en ligne.
Pour les bandits manchots c'est pas vraiment aléatoire, c'est des tables déjà pré remplies avec l'ensemble des combinaisons existantes (il existe plusieurs facons de faire mais c'est rarement un véritable hasard

Reply

Marsh Posté le 24-08-2008 à 11:09:32    

De toutes façons toutes les fonctions rand sont des fonctions pseudo aléatoires ... Donc au final je suis pas sur que ça change grand chose ..


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 24-08-2008 à 12:47:36    

Oui enfin il y a une certaine logique dans la génération d'IP :)
Ce ne sont pas des générations aléatoires, soit dit en passant c'est clair que la génération pseudo aléatoire exemple : rand() est nullement aléatoire :p
Rien n'est aléatoire en informatique !


---------------
-- Turns your mind towards BeTa --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed