Avatar billede encorez Nybegynder
12. april 2009 - 10:22 Der er 3 kommentarer og
2 løsninger

Array med IP adresse

Jeg har en log fra min hjemmesider. Der gemmer jeg brugernes IP adresse. Jeg er interesseret i at tælle hvor mange af dem der er danske og så resten.

Det eneste sted jeg har kunnet finde IP ranges for danmark er her:
http://www.ipaddresslocation.org/ip_ranges/get_ranges.php

Her er et MEGET kort udsnit. Der er rigtig mange.
62.27.6.64 62.27.6.127
62.44.128.0 62.44.191.255
62.61.128.0 62.61.159.255
62.66.0.0 62.66.255.255
62.79.0.0 62.79.255.255
62.93.134.0 62.93.135.255
62.107.0.0 62.107.255.255

Jeg har ikke helt styr på arrays hvis det er løsningen. For hver IP adresse jeg har skal jeg lave et tjek på hvorvidt den er indeholdt i blandt disse IP ranges eller ej. Hvordan gør jeg det smartest i PHP?

Eller er der nogen der har en endnu bedre løsning?
Avatar billede qub- Novice
12. april 2009 - 11:42 #1
du kunne jo evt smide alle de kendte ip addresse i en .txt fil, og så efterfølgende tjekke om brugerens ip er kendt i den listen..
Avatar billede encorez Nybegynder
12. april 2009 - 12:08 #2
hmm, er ikke helt sikker på jeg ved hvordan det skulle gøres. I ovenstående liste står f.eks. 62.27.6.64 62.27.6.127. Så det vil jo sige at det er alle IP adresse der imellem. Plus alle de andre i listen.
Hvordan skulle det praktisk sættes op i txt fil til sådan et tjek
Avatar billede CCodam Nybegynder
12. april 2009 - 17:02 #3
Du kan tage et kig på dette script:
http://whattheflux.dk/IPlocator.zip

.sql filen laver en tabel i din database, og fylder denne med data fra en .csv (komma separeret) fil, hvor du indskriver start og slut ip, landekode og landenavn

.php filen tjekker så den ip brugeren indtaster med dataen i din database, og finder ud af hvorfra IP'en kommer fra

Du må skriv hvis du skal have yderligere hjælp...
Avatar billede encorez Nybegynder
12. april 2009 - 20:13 #4
For ikke at skulle vedligeholde sådan en tabel har jeg fundet en anden løsning.
Jeg bruger denne API der udskriver landekoden for en ip.
$land = file_get_contents('http://api.hostip.info/country.php?ip='.$_SERVER[REMOTE_ADDR]);

Så gemmer jeg landekode i min log. Så kan jeg søge på landekoden som jeg har lyst til bagefter.

Tak for hjælpen
Avatar billede qub- Novice
13. april 2009 - 10:40 #5
Ved ik hvor godt det virker.. Den skriver fx jeg er i Tyskland, Berlin lige nu...? :P
Men har vel noget at gøre med at Jeg har "3-usb-internet"
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