ugrás a tartalomhoz

geoip segítség

Radon · Május. 12. (Sze), 13.36
Sziasztok!
Szeretném használni a geoip kiterjesztést arra, hogy lekérdezhessem egy felhasználó körülbelüli helyét.
Addig jutottam, hogy a cPanelben be van pipálva a geoip kiterjesztés, tehát nem kell komponenseket telepíteni. De után hogyan tovább?
php.net/geoip
Ezt nézegettem, de nem tudom mit kellene csinálni.
Tudnak valaki segíteni?
Köszi.
 
1

Tudtommal az csak egy

kuka · Május. 12. (Sze), 15.37
Tudtommal az csak egy lekérdező függvény gyűjtemény. Kell mellé egy geoip adatbázis amiből kérdezgessen. Szerintem elsőre azt kellene kiderítsd a geoip_db_avail() függvény segítségével, hogy a cPanel telepített-e ilyesmit. Ha igen, akkor a következő kérdés, hogy a részletessége megfelel-e a szükségleteidnek. Ha nem, akkor a következő kérdés, hogy az üzemeltető hajlandó-e telepíteni neked.

(Részemről eddig jutottam a téma elméleti körbejárásával, mert nagyon nem volt rá szükségem.)
2

Az a függvény ezt adta

Radon · Május. 12. (Sze), 16.09
Az a függvény ezt adta vissza: geolite2legacy.py
Ezzel mit kezdjek? vagy mit jelent?
A részletesség nem igényem, nyilván ingyenes. Innen hogyan tovább?
Köszi az eddigieket.
4

Nem néztél el valamit? Az a

mind1 valami név · Május. 13. (Cs), 09.53
Nem néztél el valamit?
Az a fv. bool típusú, true/false a visszaadott érték.
Ez a geo... meg egy python szkript neve.
5

ha true, akkor kiirja a geoip_database_info-t

Radon · Május. 13. (Cs), 10.11
if (geoip_db_avail(GEOIP_COUNTRY_EDITION))
    print geoip_database_info(GEOIP_COUNTRY_EDITION);
3

Hogyha megvan ez a

Radon · Május. 13. (Cs), 09.48
Hogyha megvan ez a file:
/usr/share/GeoIP/GeoIP.dat
akkor ebből hogy nyerem ki az adatokat?
6

Sikerült!

Radon · Május. 13. (Cs), 12.36
Sikerült!
Ez hiányzott:
$user_ip = getenv('REMOTE_ADDR');
$geo = unserialize(file_get_contents("http://www.geoplugin.net/php.gp?ip=$user_ip"));
$lat = $geo["geoplugin_latitude"];
$long = $geo["geoplugin_longitude"];
echo "Latitude: ".$lat."<br>";
echo "Longitude: ".$long."<br>";
7

O.K., ez működik, de biztos,

mind1 valami név · Május. 14. (P), 00.55
O.K., ez működik, de biztos, hogy ezt akarod? Mert ezzel minden lekérdezésnél kimész a netre, ami lassú is és biztonságosnak sem nevezném. Részben azért, mert http. Ahogy elnéztem, https-t nem is kehet használni vele.
8

jaj ne. akkor mi a

Radon · Május. 14. (P), 13.13
jaj ne. akkor mi a megoldás?
Azt az adatbázist hogyan telepíthetem?
9

Ez csinál valami érdemleges

mind1 valami név · Május. 14. (P), 14.21
Ez csinál valami érdemleges dologot?

<?php
echo "hello\n";

echo geoip_database_info();
echo "\n";
echo geoip_country_name_by_name("8.8.8.8");
echo "\n";
Vagy csak simán hibát dob vissza?
Ha böngészőből néznéd az eredményt, akkor a \n helyére <br> kell persze.
Ha hibaüzenet a vége, akkor passzolom.
Ha valami ilyen:
hello
GEO-106FREE 20200123 Build
United States

akkor javaslom az általad linkelt doksi tanulmányozását! (Nem értek PHP-ül)
10

Ez baj?

Radon · Május. 14. (P), 16.34
Ezt írja ki:
hello
geolite2legacy.py
United States
11

Bajnak nem baj, csak ku...ra

mind1 valami név · Május. 14. (P), 16.56
Bajnak nem baj, csak ku...ra nem értem.
Azt hittem, az a python szkript név úgy került ide, hogy valamit elnéztél.
Akkor a geoip csomag működik, így azt hiszem, elég a geoip_record_by_name() használata. A visszaadott tömbből ki tudod szedni amire szükséged van.
Egy gond van vele: az adatbázisát vagy frissíti a szolgáltatód, vagy nem.
12

Erre nem ír ki

Radon · Május. 15. (Szo), 07.18
Erre nem ír ki semmit:
$user_ip = getenv('REMOTE_ADDR');
$geo=geoip_record_by_name($user_ip) ;
print $geo;
13

Mondom, nem értek a php-hez.

mind1 valami név · Május. 15. (Szo), 11.19
Mondom, nem értek a php-hez. Tömböt ki tud írni a print?
Javasolnám a doksi elolvasását, mert anélkül nehéz lesz.

Talán var_dump() vagy print_r() kellene a print helyett.

Az még furább, hogy nálam a fenti script gond nélkül lefut, de a
print_r(geoip_record_by_name("8.8.8.8"));

hibára fut.
PHP Warning: geoip_record_by_name(): Required database not available at /usr/share/GeoIP/GeoIPCity.dat. in Standard input code on line

Szóval lehet, hogy nálad sem fog működni.
14

Nem hiba, "csak" warning

Pepita · Május. 17. (H), 13.59
A warning will be issued if the proper database cannot be located.

Azért érdekes, hogy az általad megadott IP-t pont nem találja ( :-D ), de a print_r-nek ki kellett írnia egy false-t elvileg.
15

De, hiba: Required database

mind1 valami név · Május. 17. (H), 15.23
De, hiba:
Required database not available at /usr/share/GeoIP/GeoIPCity.dat

Ez a lényeg: valamennyire működik, de nincs adatbázisa.
16

Azért idézőjel

Pepita · Május. 18. (K), 11.01
Azért tettem idézőjelbe a "csak"-ot, mert php-ban az errort hívjuk hibának. Abban különbözik a warningtól, hogy leáll a futás.
Persze a db hiányát ez még nem pótolja.
17

Mondjuk az számomra furcsa,

mind1 valami név · Május. 18. (K), 11.08
Mondjuk az számomra furcsa, hogy egy ilyen után továbbmegy.