Avatar billede the_ghost Nybegynder
29. oktober 2003 - 15:47 Der er 31 kommentarer og
1 løsning

IP til Decimal

Er der nogen der ved hvordan man laver et IP nr. om til et decimal tal vha. php.
lidt ligesom på http://www.myip.dk
Avatar billede bearhugx Nybegynder
29. oktober 2003 - 15:56 #1
hvis ip-adressen er 4 decimal-tal
  A.B.C.D

så findes tallet som myIp.dk kommer med ved følgende

A*(256^3) +  B*(256^2) +  C*(256^1) +  D*(256^0)
Avatar billede bearhugx Nybegynder
29. oktober 2003 - 16:02 #2
og da 256^0 = 1  og 256^1 = 256 så kan du spare en potens funktion ved at sige
A*(256^3) +  B*(256^2) +  C*256 +  D

Hvis du bruger det meget, så kan det være en fordelt at regne
256^3 og 256^2  ud

256^3 = 16777216
256^2 =    65536


Hvis man tager ekspertens ip-adresse (195.184.98.141) så vil deres decimal-repræsentation være

195 * 16777216 + 184 * 65536 + 98 * 256 + 141 = 3283640973
Avatar billede the_ghost Nybegynder
29. oktober 2003 - 16:03 #3
Ved du hvordan man eventuelt kunne løse det i php. Nu står jeg med et IP: A.B.C.D hvordan får jeg så splittet det op i forskellige varibler???
Avatar billede detox Nybegynder
29. oktober 2003 - 16:08 #4
Avatar billede bearhugx Nybegynder
29. oktober 2003 - 16:08 #5
med explode vil jeg antage

$ip = "123.123.123.123";
$s = explode(".", $ip);

$ipDecimal = ($s[0]*16777216) + ($s[1]*65536) + ($s[2]*256) + ($s[3]*1);
Avatar billede detox Nybegynder
29. oktober 2003 - 16:09 #6
og long2ip(), hvis du vil den anden vej:
http://dk2.php.net/manual/en/function.long2ip.php
Avatar billede bearhugx Nybegynder
29. oktober 2003 - 16:10 #7
tak detox - den kendte jeg ikke.. så behøvede jeg ikke at hive lommeregneren frem :-@)
Avatar billede bearhugx Nybegynder
29. oktober 2003 - 16:11 #8
men nu ved the_ghost også hvad sammenhængen er mellem IP og decimal-tallet er :-)
Avatar billede detox Nybegynder
29. oktober 2003 - 16:12 #9
bearhugx -> Ja, lidt grundlæggende viden er da ikke af vejen!
Avatar billede detox Nybegynder
29. oktober 2003 - 16:19 #10
PS: Giv pointene til bearhugx. Han har brugt tid på at forklare de grundlæggende principper for en ip-adresse. c",)
Avatar billede bearhugx Nybegynder
29. oktober 2003 - 16:21 #11
thx Detox :-)
Avatar billede RJFreelance Praktikant
29. oktober 2003 - 16:39 #12
hvordan henter man så den der adresse hvor ens host står bagefter ??

Altså på samme måde som myip.dk
??
Avatar billede the_ghost Nybegynder
29. oktober 2003 - 16:41 #13
ok. Det gør jeg så, men jeg vil lige sige at jeg brugte heller ikke ip2long(), da jeg er en newbie inden for php, og ikke rigtigt kunne tyde det der stod på dokumentationen + jeg fik et minus tal ud af det. Så jeg valgte at bruge den gode gamle metode med at regne.. Men ellers mange tak for hjælpen til jer begge.
Avatar billede detox Nybegynder
29. oktober 2003 - 16:46 #14
Ja, den kan godt give et negativt resultat, derfor skal du bruge printf() eller sprintf():
Fx:
printf("%u", ip2long($ip));
eller:
$long = sprintf("%u", ip2long($ip));
Avatar billede detox Nybegynder
29. oktober 2003 - 16:48 #15
supreme-creme -> Tænker du mon på:
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
Avatar billede RJFreelance Praktikant
29. oktober 2003 - 16:49 #16
ip det er

remote_ip

ikke ??
Avatar billede RJFreelance Praktikant
29. oktober 2003 - 16:56 #17
Har fundet det.. Kan man finde ud af flere ting end ip og hostadresse ??
Avatar billede detox Nybegynder
29. oktober 2003 - 16:58 #18
Avatar billede RJFreelance Praktikant
29. oktober 2003 - 16:59 #19
ok fedt.. Tak :)
Avatar billede the_ghost Nybegynder
29. oktober 2003 - 17:03 #20
er der nogle af de ting, der er unikt for personens computer, da en ip jo kan være dynamisk.
Er der noget der altid vil have den samme værdi?
Avatar billede detox Nybegynder
29. oktober 2003 - 17:08 #21
Ikke så vidt jeg ved, så skal du nok over i COOKIES.
Avatar billede the_ghost Nybegynder
29. oktober 2003 - 17:15 #22
Det kan man vel heller ikke gøre med cookies... Da folk da også tit (jeg gør hvertfald) slettet sine cookies.
Avatar billede detox Nybegynder
29. oktober 2003 - 17:29 #23
Ja, det har du ret i, men så er de osse selv ude om det ;o) Men ellers kender jeg ikke nogen metode og det ville i og for sig osse være ubehageligt, hvis man sådan kunne blive identificeret unikt.
Avatar billede the_ghost Nybegynder
29. oktober 2003 - 17:34 #24
ja det kan jeg godt se... Det var fordi at jeg har et lille forum kørende på min hjemmeside, bare får nogle af mine kammerater (uden bruger-system), og der er nogen af dem der tit angiver et andet navn, så kunne det jo være fedt hvis jeg eks. kunne sige:
Hvis IP = A.B.C.D Så sæt navn til Kirsten
eller noget i den retning.
Avatar billede the_ghost Nybegynder
29. oktober 2003 - 17:34 #25
bare uden at bruge IP, da mange af dem har dynamisk IP
Avatar billede tipsen Nybegynder
29. oktober 2003 - 20:51 #26
Lav et simpelt login system...
Avatar billede raffar Juniormester
04. november 2003 - 16:03 #27
Hvordan får man så php til at vise en IP i nomerisk format hvis en bruger f.eks. lander på en side? Jeg er ikke god til PHP :(
Avatar billede the_ghost Nybegynder
04. november 2003 - 16:23 #28
$_SERVER['REMOTE_ADDR']);
Avatar billede raffar Juniormester
04. november 2003 - 16:29 #29
Jeg har f.eks. dette lille script

<?php
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
// print $hostname;
echo "Your current IP Address: $REMOTE_ADDR<br>";
echo "Your Hostname: $hostname<br>";
echo "Refferer is: $HTTP_REFERER<br>";
echo "Your Browser: $HTTP_USER_AGENT<br>";
?>

Men hvardan får jeg det ogsp at vise IP'en som et numerikst tal?
Avatar billede the_ghost Nybegynder
04. november 2003 - 16:36 #30
<?php
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$ip = $_SERVER['REMOTE_ADDR'];
$x = explode(".", $ip);
$decIP = ($x[0]*16777216) + ($x[1]*65536) + ($x[2]*256) + ($x[3]*1);
// print $hostname;
echo "Your current IP Address: $REMOTE_ADDR<br>";
echo "Your Hostname: $hostname<br>";
echo "Refferer is: $HTTP_REFERER<br>";
echo "Your Browser: $HTTP_USER_AGENT<br>";
echo "Your dec IP is: " .$decIP;
?>
Avatar billede raffar Juniormester
04. november 2003 - 16:45 #31
Det ser ud til at virker :)
Hm .... jeg lægger lige et nyt spørgsmål om hvordan man kan lave ip2long og vice versa long2ip i en submit form... Så jeg kan dele nogle points ud :)
Avatar billede raffar Juniormester
04. november 2003 - 16:49 #32
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