Avatar billede julemandenb Nybegynder
22. januar 2011 - 00:49 Der er 8 kommentarer og
1 løsning

Opret max 9 cifret talkode

Hej eksperten.
Jeg er igang med en lille for sjov spil. Det skal virke lidt sådan at man har en Virsual computer hvor man så har mulighed for at indstaller virus på computeren osv. Denne computer skal have en UNIK Ipadresse ligesom i vore virkelige verden. IP'en må kun bestå af max 9 cifre ( xxx.xxx.xxx ) og ikke under 6 cifre ( xx.xx.xx )
Denne IP adresse skal være "hemmelig" da andre skal finde ens IP og hacke brugerens computer, derfor nytter det intet at der kommer en fejl hvor der står "Denne ip er optager, Prøv igen"

Altså. Jeg skal have et brugersystem som laver en random IP adresse, Hvis ipadressen eksister hos en bruger skal den lave en ny random ip adresse. Men hvordan skal man lave dette uden brugeren for at vide at IP'en er optaget?

//Mikkel
Avatar billede blizduck Nybegynder
22. januar 2011 - 01:16 #1
Kæft det lyder som et spil som ku blive sjovt :P skriv lige når det er færdigt ^^
Avatar billede julemandenb Nybegynder
22. januar 2011 - 01:20 #2
Skal nok. hvis det når så langt :)
- Har et stort projekt foran mig :D
Avatar billede arne_v Ekspert
22. januar 2011 - 02:29 #3
Hvis brugeren kun ser den faktisk valgte IP addresse kan han vel ikke se om din backend for kasseret nogle muligheder p.g.a. duplikat.
Avatar billede jakobdo Ekspert
22. januar 2011 - 04:30 #4
Kunne det ikke være at have en aktiv ip database og gemme aktive ip'er i den?
Og selvfølgelig angive den til at være unik?
Avatar billede jih Nybegynder
22. januar 2011 - 05:19 #5
som jakobdo siger. :)

du kan gøre et loop som giver et random tal mellem 10 og 999 og skrive tallet ind i en streng. Så kan du appende til strengen med "." og så om igen :)

Det skal så selvfølgelig loopes inde i en while (eller lignende), hvor du tjekker om strengen (ip adressen) er optaget i en db, hvor du har de andre brugeres ip adresser i. Hvis ip adressen er optaget, kan du bare køre loopet igen.

Håber det hjælper? :-)
Avatar billede julemandenb Nybegynder
22. januar 2011 - 11:17 #6
Tak for jers svar. Jeg er igang med at se på det :)
Avatar billede julemandenb Nybegynder
22. januar 2011 - 19:24 #7
Så langt så godt.
Nu har jeg fået produceret et system som JEG mener er kodet rigtig
Jeg har sat noget "Count" tæller ind som en test for at man kan se at whilen fungere korrekt... Nu spørger jeg så igen. Den kode under her. Vil den fungere til de store tal. eller kan jeg risiker at den til tider vil fejle?
___________________________________________________________

<?php
include "inc/config.php";
$ip = "1";
$count=0;
$count++;
while($count){
$rand1 = rand(1,10);
//$rand2 = rand(1,3);
//$rand3 = rand(1,3);
//$result = "".$rand1.".".$rand2.".".$rand3."";
$result = $rand1;
$vip = $result;

$check_vip = mysql_query("SELECT * FROM iptest WHERE ip = '$vip'")or die(mysql_error());
$res_check_vip=mysql_num_rows($check_vip);
$vis_ip = mysql_fetch_assoc($check_vip);

if($res_check_vip >= "1"){
//echo "Disse to iper er ens ( $vip = ".$vis_ip['ip']." )<br><br>";
$count++;
//$count++;
//$count++;
} else {

$query = mysql_query("INSERT INTO iptest (ip, count) VALUES ('$vip', '$count')")or die(mysql_error());
$count=0;
}
}
?>

______________________________________________________

billede af min tabel http://i56.tinypic.com/2v2y0b8.jpg

Self. skal jeg ha rettet rand tallene korrekt til. dette er jo kun en test. Men igen. Vil dette fungere med et max 9 cifret tal ?

//Mikkel
Avatar billede julemandenb Nybegynder
23. januar 2011 - 16:25 #8
Jakobdo & Jih smid lige et svar :)
Avatar billede jih Nybegynder
25. januar 2011 - 10:03 #9
:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester