Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> ip -> country, city
robert1974
post
Post #1





Grupa: Zarejestrowani
Postów: 131
Pomógł: 1
Dołączył: 2.11.2014

Ostrzeżenie: (0%)
-----


czesc,
Czy ktos moze polecic API lub kod jak zrobic mapowanie z IP na panstwo+miasto?

znalazlem cos takiego ale nie dziala:
Grab the users IP address.
$ip = $_SERVER['REMOTE_ADDR'];

Get the users City, State and Country.
$sturl = 'http://api.hostip.info/get_html.php?ip='.$ip;
$ch = curl_init($sturl);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_TIMEOUT,10);
$res = curl_exec($ch);
$resinfo = curl_getinfo($ch);
curl_close($ch);
preg_match('/City: ([a-zA-Z].+[a-zA-Z]+)/', $res, $r);
preg_match('/ (([A-Z][A-Z])/', $res, $s);
$city = $r[1];
$country = $s[1];

z: http://www.scriptiny.com/2008/04/map-your-...ps-api-and-php/

dzieki,
Robert
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 19)
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 809
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


http://freegeoip.net/csv/TU_IP
Nie zawsze działa, i niekoniecznie poprawnie wskazuje.

http://www.google.pl/search?q=ip+geolocation+database
Go to the top of the page
+Quote Post
robert1974
post
Post #3





Grupa: Zarejestrowani
Postów: 131
Pomógł: 1
Dołączył: 2.11.2014

Ostrzeżenie: (0%)
-----


nie wiem jak tego uzyc.

a w googlach tez szukam, ale wciaz porazka.
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




http://freegeoip.net/csv/TU_IP
W miejscie TU_IP masz wpisac IP, ktore cie interesuje...
Go to the top of the page
+Quote Post
Pyton_000
post
Post #5





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


W adres wstawiasz IP i w odpowiedzi dostajesz CSV z danymi
np:
http://freegeoip.net/json/185.49.14.112
możesz zmienic json na xml, csv, json
Go to the top of the page
+Quote Post
robert1974
post
Post #6





Grupa: Zarejestrowani
Postów: 131
Pomógł: 1
Dołączył: 2.11.2014

Ostrzeżenie: (0%)
-----


aha, troche rozjasniliscie, dostalem plik textowy:
"176.35.234.145","GB","United Kingdom","","","","","51.5000","-0.1300","",""

ale jak zrobic by takie mapoweanie z IP -> Panstwo + miasto zrobic w kodzie PHP?

btw: miasta nie ma


tu jeszcze cos znalazlem: http://www.ipinfodb.com/ip_location_api.php
Go to the top of the page
+Quote Post
trueblue
post
Post #7





Grupa: Zarejestrowani
Postów: 6 809
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Znasz funkcję explode w php?
Albo użyj formatu JSON, kliknij w link od Pyton_000, to zobaczysz gdzie i co jest.

Miasto nie zawsze jest, tu przykład z miastem:
"XXX.XXX.XXX.XXX","PL","Poland","78","Mazowieckie","Pruszków","","52.1626","20.8129","",""

Ten post edytował trueblue 13.11.2014, 17:44:25
Go to the top of the page
+Quote Post
robert1974
post
Post #8





Grupa: Zarejestrowani
Postów: 131
Pomógł: 1
Dołączył: 2.11.2014

Ostrzeżenie: (0%)
-----


@trueblue
jeszcze jestem glabem w tych technologiach, ale szybko sie ucze

oki, czyli tego jsona mam PHP explode porozdzielac i wybrac panstwo, miasto

zaraz poszukam o parsowaniu jsona

rany ile nowosci (IMG:style_emoticons/default/smile.gif)

dzieki chlopaki
Go to the top of the page
+Quote Post
trueblue
post
Post #9





Grupa: Zarejestrowani
Postów: 6 809
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


To co dostałeś, to nie JSON, tylko CSV, jego rozdzielasz explode.
Jeśli będziesz miał JSON i znajdziesz jak go parsować, to właśnie tą znalezioną funkcją.
Go to the top of the page
+Quote Post
robert1974
post
Post #10





Grupa: Zarejestrowani
Postów: 131
Pomógł: 1
Dołączył: 2.11.2014

Ostrzeżenie: (0%)
-----


sorry za mega lamerskie pytanie ale co zrobic (w PHP) z tym $sturl by dostac w nowej zmiennej tego JSONa stringa?

$user_ip=$_SERVER['REMOTE_ADDR'];

//calc country/city
$sturl = 'http://freegeoip.net/json/'.$user_ip;

Go to the top of the page
+Quote Post
Turson
post
Post #11





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


json_decode i masz tablicę
Go to the top of the page
+Quote Post
robert1974
post
Post #12





Grupa: Zarejestrowani
Postów: 131
Pomógł: 1
Dołączył: 2.11.2014

Ostrzeżenie: (0%)
-----


Cytat(Turson @ 13.11.2014, 18:12:50 ) *
json_decode i masz tablicę


parsowanie JSONa to bedzie kolejny krok, najpierw musze sie nauczyc jak przypisac tego JSONa do jakiejs zmiennej w PHP. To co napisalem powyzej.
Go to the top of the page
+Quote Post
Turson
post
Post #13





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


  1. $sturl = 'http://freegeoip.net/json/'.$user_ip;
  2. $json = file_get_contents($sturl);
  3. $tablica = json_decode($json);

W ten sposób. Moze sie jednak zdarzyc, ze maja zabezpieczenie przed pobieraniem danych w ten sposób, wtedy pozostaje cURL.
Go to the top of the page
+Quote Post
robert1974
post
Post #14





Grupa: Zarejestrowani
Postów: 131
Pomógł: 1
Dołączył: 2.11.2014

Ostrzeżenie: (0%)
-----


Dziala, wielkie dzieki:

$user_ip=$_SERVER['REMOTE_ADDR'];

$sturl = 'http://freegeoip.net/json/'.$user_ip;

$json = file_get_contents($sturl);
$json_a = json_decode($json,true);

//var_dump($json_a);

$country=$json_a["country_code"];
$city=$json_a["city"];

... + zapis do bazy

niestety czasem sie wywala z takim bledem:

Warning: file_get_contents(http://freegeoip.net/json/176.35.234.145) [function.file-get-contents]: failed to open stream: HTTP request failed!

co poczac?
Go to the top of the page
+Quote Post
Turson
post
Post #15





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


Napisałem wyzej ze moze sie tak zdarzyc
cUrl - http://stackoverflow.com/questions/697472/...-request-failed
Go to the top of the page
+Quote Post
robert1974
post
Post #16





Grupa: Zarejestrowani
Postów: 131
Pomógł: 1
Dołączył: 2.11.2014

Ostrzeżenie: (0%)
-----


tak, tak, wiem pisales, juz na to patrze (IMG:style_emoticons/default/smile.gif)

tak zrobilem:

/// method 2
$sturl = 'http://freegeoip.net/json/'.$user_ip;
$ch = curl_init($sturl);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_TIMEOUT,10);
$res = curl_exec($ch);
//$resinfo = curl_getinfo($ch);
curl_close($ch);

//var_dump($res);

$json_a = json_decode($res,true);

$country=$json_a["country_code"];
$city=$json_a["city"];

... i zapis do bazy, ...wyglada ze dziala

jesze raz dzieki za pomoc

jeszcze raz o tym samym ...

http://freegeoip.net/ juz nie istnieje wiec ponawiam prosbe, czy mozecie mi podpowiedziec co Wy stosujecie do tego typu konwersji?

a przy okazji, wywolanie CURL na stronie bylo zbyt wolne, stad mysle by przeniesc logike konwersji ip->country+city poza kod strony, do jakiegos skryptu php ktory uruchamialbym cronem.

podpowie ktos?

nikt nie robi tego typu operacji? trudno mi uwierzyc jakos (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Pyton_000
post
Post #17





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Tak trudno włączyć sobie Google i poszukać (IMG:style_emoticons/default/questionmark.gif)
http://ip-api.com/docs/api:json
Go to the top of the page
+Quote Post
robert1974
post
Post #18





Grupa: Zarejestrowani
Postów: 131
Pomógł: 1
Dołączył: 2.11.2014

Ostrzeżenie: (0%)
-----


Nie trudno Pyton, wierz mi, ze mam z 10 zakladek otwartych i ciagle szukam w google. Najlepiej sie uczyc z przykladow.

Tyle ze w internecie jest tyle tych przykladow ale i smieci, ze wole spytac tutaj na forum, gdzie licze ze ktos kto ma pojecie bo uzywa podpowie mi cos sprawdzonego co dziala.

dzieki.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #19





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Ładniej by było napisać

"Hej. Mam pytanie. Znalazłem xx stron które oferują API do zamiany IP na adresy: (tutaj wymieniamy co mamy). Czy któreś wg. Was jest lepsze? Macie z nimi doświadczenie?"

Wtedy Ty dostaniesz poradę nt. przytoczonych przykładów czy warto czy nie, ew. ktoś Ci podeśle coś lepszego. A i w temacie będzie coś wartościowego.
Go to the top of the page
+Quote Post
robert1974
post
Post #20





Grupa: Zarejestrowani
Postów: 131
Pomógł: 1
Dołączył: 2.11.2014

Ostrzeżenie: (0%)
-----


zaaplikowalem http://ip-api.com/docs/api:json i ladnie dziala (IMG:style_emoticons/default/smile.gif)

dziekuje mr. Pyton_000
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.12.2025 - 20:36