![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 97 Pomógł: 7 Dołączył: 24.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
pytałem wujka google'a o geolokalizacje, gdyż potrzebuje znaleźć najbliższe miasto które znajduje się u odwiedzającego moją stronę, znalazłem skrypt http://www.geo-ip.dnx.pl/geo.php lecz moja strona ma charakter komercyjny, i odpada zamieszczanie adresów zwrotnych. Zastanawiam się czy może jest jakieś zapytanie do google'a dzięki którym po podaniu IP pobierze takie dane jak dł. szer. geograficzną oraz miasto, dla mnie najważniejsza rzeczą jest miasto. Z góry dziękuję za odpowiedź. Ten post edytował fenix.robi 21.01.2011, 08:13:20 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Tak, jest. Google maps + użycie geokodowania (IMG:style_emoticons/default/smile.gif) Podajesz kilka danych jak choćby miasto, województwo i dostajesz wynik. Tu masz już w najnowszej wersji 3. Choć większość serwisów używa jeszcze wersji2. Róznice są zauważalne. Nie chodzi nawet o sposób używania. Nie wiem czemu tak jest, ale mapy w v3 i ich kafle są o wiele wyrazistsze, brak im rozmycia.
http://code.google.com/intl/pl/apis/maps/d....html#Geocoding |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 97 Pomógł: 7 Dołączył: 24.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
W sumie trochę mi przybliżyło rozwiązanie problemu, lecz to go nie rozwiązuje, gdyż potrzebuje podać współrzędne aby dostać adres, a ja operuję tylko adresem IP użytkownika (gość), myslałem ze znalazłem skrypt na http://www.vista.pl/webmaster/127_geolocal...acja_w_php.html lecz niestety brak klucza google dla tej domenty.
|
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Powiem tam... Skrypt jaki masz nie działa, bo curl używa strony która się sypie (IMG:style_emoticons/default/winksmiley.jpg) Tylko że przy tym wysypaniu się zwróciła mi jednocześnie adres serwera z którego korzysta do geokodowania. Adres w skrypcie jest tylko pośrednikiem i można go po prostu obejść. Przebuduj nieco skrypt by używał
http://api.hostip.info/get_html.php?ip=ADR...p;position=true a w wyniku dostaniesz choćby coś takiego (IMG:style_emoticons/default/smile.gif) Kod Country: POLAND (PL) a to już banalnie się obrabia i co najważniejsze... dostajesz z tej strony współrzędne do geokodowania wprost na tacy (IMG:style_emoticons/default/smile.gif) Tylko uważaj! Nie zawsze znajduje! Jeśli tak będzie w Twoim przypadku to musisz użyć geokodowania po nazwie państwa i miasta choćby od google jakie wspomniałem.City: Warsaw Latitude: 52.2333 Longitude: 21 IP: ADRES_IP Dodatkowo zacząłem się bawić modyfikacją adresu url i wiem, że nie musisz dostać html, ale także xml modyfikując do formy: http://api.hostip.info/get_html.php?ip=ADR...p;position=true By było weselej, to da się też dorwać format JSON, ale już żądaniem POST o nieznanym mi formacie, bo próba wywołania http://api.hostip.info/get_json.php?ip=ADR...p;position=true zwraca błąd, iż nie przesłałem pliku. Zapewne da się z tego adresu wyciągnąć jeszcze więcej, ale nie mam już czasu by się bawić. Najważniejsza zaś rzecz w całości? Serwer zwracający odpowiedź jest bardzo szybki (IMG:style_emoticons/default/smile.gif) Zazwyczaj dostawałem odpowiedź w czasie około sekundy od momentu wpisania adresu do otrzymania wyniku. Podany w znalezionym przez Ciebie skrypcie był z powodu byków nieosiągalny. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 97 Pomógł: 7 Dołączył: 24.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
(IMG:style_emoticons/default/biggrin.gif) przed przeczytaniem twojego postu natknąłem się na tą stronę, sprawdziłem moje IP i wyświetliło mi Berlin, co prawda niedaleko mi do granicy PL-DE ale zazwyczaj pokazuje mi przy tym adresie najdalej Wrocław (IMG:style_emoticons/default/biggrin.gif) , sprawdziłem tez koordynaty to też mi wskazuje na Berlin, ale dzięki za zaangażowanie, szukam dalej (IMG:style_emoticons/default/biggrin.gif)
|
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Zapewne dlatego, że wyszukuje nie konkretny adres, ale adres ISP. Możesz jeszcze kombinować z obróbką danych taką:
http://www.db.ripe.net/whois?form_type=sim...p;submit=Search Ale tu już masz więcej zabawy z wyrażeniami regularnymi. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 97 Pomógł: 7 Dołączył: 24.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Znalazłem taką stronkę:
http://www.melissadata.com/lookups/iplocat...dress=<adres IP> i strona pokazuje mi poprawne miasto i moje wyrażenie regularne nie pobiera mi Miasta
skrypt przerobiony z pierwszego postu |
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Nie działa, bo masz niezabezpieczone znaki specjalne. W tym przypadku są to / i one robią problem.
Teraz powinno zadziałać. Swoja drogą mój adres IP na stronie melissadata nadal prowadzi i wskazuje na adres providera, czyli Warszawę. Za to description w ripe.net już pokazywało właściwe miasto, czyli Konin. Jak więc widzisz, nadal nie jest to idealne, bezpieczne i wiarygodne rozwiązanie. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 22:17 |