Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Geolokalizacja
Mike122
post 23.01.2007, 22:14:37
Post #1





Grupa: Zarejestrowani
Postów: 253
Pomógł: 1
Dołączył: 12.04.2006

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


Witam. Wiem że temat był dużo razy ale jednak żadna z darmowych baz nie jest dobra.
http://ip-to-country.webhosting.info
http://ripe.net/
Nie wykrywają np. adresów IP z USA (http://ripe.net).
Przeszukałem całe forum jednak i tutaj nie jest też za dobrze.
Czy ktoś z was posiada dobry skrypt Geolokalizacji?
Jeśli tak proszę o niego.


OK Zrobiłem to.
Może komuś się przyda:
  1. <?php
  2. function geolokalizacja($ip_goe_local){
  3. $url = "http://www.fileformat.info/system/iplocation.htm?ip=".$ip_goe_local."";
  4. $web = implode('', file($url));
  5. $start_ip = strpos($web, '<td>Country code=') + 17;
  6. $stop_ip = strpos($web, '<br/>Country name=');
  7. $ip = substr($web, $start_ip, $stop_ip-$start_ip);
  8. return $ip;
  9. }
  10. ?>

Funkcja wyciąga sam znacznik np. PL, DE, CZ, US, UK itd.

Użycie:
  1. <?php
  2. print geolokalizacja("12.81.12.12"); //Jeśli chcemy wyświetlić
  3. $kraj = geolokalizacja("12.81.12.12"); //Jeśli chcemy przypisać zmiennej
  4. ?>


Ten post edytował Mike122 24.01.2007, 20:37:47


--------------------

Największy błąd ze wszystkich błędów to nie słuchać dobrych rad. Nikt nie jest doskonały i nie należy się obrażać za konstruktywną krytykę.
Go to the top of the page
+Quote Post
Bastion
post 24.01.2007, 11:09:35
Post #2





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

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


Nie prościej, szybciej ( baza danych lokalna ) skorzystać z Class5.Scout ?

Gelokalizacja : http://class5.jarzebski.pl/demo/scout/examples/example05.php
System / Browser : http://class5.jarzebski.pl/demo/scout/examples/example01.php

  1. <?php
  2.  
  3. /*
  4.  Przyklad 5
  5.  Geolokalizacja adresu IP na terenie Polski
  6. */
  7.  
  8. define('CLASS5_CHARSET', 'iso-8859-2');
  9.  
  10. require_once('../libs/class5.scout.php');
  11.  
  12. $scout = new Scout;
  13.  
  14. /* Możliwe jest wskazanie klasie adresu IP do zlokalizowania */
  15. if (isset($_GET['ip']))
  16. {
  17. $scout -> set_ip($_GET['ip']);
  18. }
  19. /* w przeciwnym wypadku IP zostanie automatycznie pobrany ze zmiennej */
  20.  
  21. print '<b>Podstawowe informacje :</b>';
  22. print '<br />User IP : '.  $scout->get_ip();
  23. print '<br />User Proxy : '. $scout->get_proxy();
  24. print '<br />Route IP : '. $scout->get_route_ip();
  25. print '<br />User ID : '.  $scout->get_uid();
  26.  
  27. print '<br /><br /><b>Państwo : </b>';
  28. if ($scout->is_country())
  29. {
  30. print '<br />Flaga : <img src="../libs/flags/'.$scout->country('flag').'">';
  31. print '<br />Państwo (pl) : '.  $scout->country('pl_name');
  32. print '<br />Państwo (en) : '.  $scout->country('en_name');
  33. print '<br />Państwo (de) : '.  $scout->country('de_name');
  34. print '<br />Symbol : '.  $scout->country('symbol');
  35. print '<br />Locale : '.  $scout->country('locale');
  36. print '<br />Locale (array) : ';  print_r($scout->country('array_locale'));
  37. print '<br />Pełna nazwa : '. $scout->country();
  38. print '<br />Strefa czasowa : '.  $scout->country('utc');
  39. print '<br />Strefa czasowa (array) : '; print_r($scout->country('array_utc'));
  40.  
  41. $saving = ($scout->country('saving')) ? 'Tak' : 'Nie';
  42.  
  43. print '<br />Obowiązue czas zimowy/letni : '. $saving;
  44.  
  45. } else
  46. {
  47. print '<br />... brak adresu w bazie danych';
  48. }
  49.  
  50. print '<br /><br /><b>Geolokalizacja : </b>';
  51. if ($scout->is_geo())
  52. {
  53. print '<br />(BL) North : '. $scout->geo('n');
  54. print '<br />(BL) East : '.  $scout->geo('e');
  55. print '<br />(XY) X : '. $scout->geo('x');
  56. print '<br />(XY) Y : '. $scout->geo('y');
  57. print '<br />Miasto : '. $scout->geo('town');
  58. print '<br />Powiat : '. $scout->geo('district');
  59. print '<br />Województwo : '.  $scout->geo('province');
  60.  
  61. /* Dopuszczalne rozmiary mapy : 600x554, 500x462, 400x369, 300x277, 240x222, 200x
    185, 180x166 */
  62. /* Jak tworzyc wlasne mapy przeczytasz w pliku FAQ */
  63.  
  64. if ($scout->set_calibrate(500,462))
  65. {
  66. print '<br />Punkt : '.  $scout->point('url');
  67. print '<br /><br /><img src="mapa.php?'.$scout->point('url').'" />';
  68. }
  69. } else
  70. {
  71. print '<br />... brak adresu w bazie danych';
  72. }
  73.  
  74. ?>


Ten post edytował Bastion 24.01.2007, 11:10:12


--------------------
Go to the top of the page
+Quote Post
Mike122
post 24.01.2007, 13:23:47
Post #3





Grupa: Zarejestrowani
Postów: 253
Pomógł: 1
Dołączył: 12.04.2006

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


Na samym początku chciałem tego użyć ale Class5.Scout pod adresem:
http://forum.php.pl/index.php?showtopic=42519
były przykłady a linki do pobrania klasy 'umarły'.
Szukałem na Google najnowszej wersji Class5.Scout 1.8.1 ale nie znalazłem.
Bastion mógłbyś udostępnić najnowszą wersje?


--------------------

Największy błąd ze wszystkich błędów to nie słuchać dobrych rad. Nikt nie jest doskonały i nie należy się obrażać za konstruktywną krytykę.
Go to the top of the page
+Quote Post
Bastion
post 24.01.2007, 13:33:17
Post #4





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

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


Specjalnie dla Ciebie : http://class5.jarzebski.pl/repo/


--------------------
Go to the top of the page
+Quote Post
Mike122
post 24.01.2007, 13:35:51
Post #5





Grupa: Zarejestrowani
Postów: 253
Pomógł: 1
Dołączył: 12.04.2006

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


Dziękuję Ci Bastionsmile.gif


--------------------

Największy błąd ze wszystkich błędów to nie słuchać dobrych rad. Nikt nie jest doskonały i nie należy się obrażać za konstruktywną krytykę.
Go to the top of the page
+Quote Post
Saddam92
post 27.02.2007, 22:34:54
Post #6





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 17.11.2006

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


Czy ja też mógłbym prosić o ponowne wystawienie klasy do sciagniecia questionmark.gif
Go to the top of the page
+Quote Post
uraharu
post 14.05.2011, 19:22:48
Post #7





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 19.07.2009

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


Czy ktoś mógłby mi udostępnić całą klasę scout5?

Mam problem z wyświetlaniem miasta
mam taki kod:

  1. if ($scout->is_geo())
  2. {
  3. //miasto
  4. $city = $scout->geo('town');
  5. }
  6. else
  7. {
  8. $city = $_SERVER['GEOIP_CITY'];
  9. }


i niestety z klasy $scout nie chce pobrać mi nazwy miasta w ogóle nie przechodzi If'a, nie wiem dlaczego :/
Go to the top of the page
+Quote Post
mlawnik
post 14.05.2011, 22:39:22
Post #8





Grupa: Zarejestrowani
Postów: 455
Pomógł: 49
Dołączył: 12.04.2010

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


Tak ciężko poszukać?

http://trackip.santyago.pl/pobierz.html


--------------------
Pozdrawiam,
mlawnik

Cytat(nospor)
Jedzmy gówno.... miliony much nie może się przecież mylić
Go to the top of the page
+Quote Post
Wilu88
post 16.05.2011, 12:29:04
Post #9





Grupa: Zarejestrowani
Postów: 158
Pomógł: 6
Dołączył: 7.03.2010

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


A ja mam pytanie dotyczące bazy danych adresów IP TrackIP TIB. Z racji że zajmuje ona 800kb, to znaczy że gdy moją stronę w niedługim czasie odwiedzi 200 osób to zużyje ok. 200mb transferu odczytując tylko miejscowość?

Mam system statystyk w których zapisuje adres IP oraz miasto.


Czy jest możliwość odchudzenia tego pliku tylko do miast? Gdyż ni potrzebuje innych danych.
Go to the top of the page
+Quote Post
Bastion
post 16.05.2011, 19:19:10
Post #10





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

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


W żadnym wypadku. Nie wiem jakim cudem wpadłeś na pomysł, że pobierane jest za każdym razem 800kB. Bazę pobiera się raz.


--------------------
Go to the top of the page
+Quote Post
wewior
post 21.07.2011, 10:46:42
Post #11





Grupa: Zarejestrowani
Postów: 200
Pomógł: 8
Dołączył: 24.09.2003

Ostrzeżenie: (10%)
X----


Chciałem trochę odświeżyć temat.
Mam konkretnych przypadek że muszę ustalić czy klient jest z USA czy z pozostałych części świata, tylko takie dwie opcje.
Czy jest taka możliwość aby to sprawdzić nie korzystając z baz, ip itd? Może jakieś dane przeglądarki się przedstawiają czymś co mi powie czy klient z USA? Np kod języka.

Dzięki z góry.


--------------------
- - -
PHP, HTML, JS, Quick.Cms v6.4, Quick.Cart v6.7, Simlery
- - -
Go to the top of the page
+Quote Post
yevaud
post 21.07.2011, 14:01:24
Post #12





Grupa: Zarejestrowani
Postów: 471
Pomógł: 89
Dołączył: 29.07.2008
Skąd: Warszawa

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


rzuc okiem w Zend_Locale, metoda getBrowser
Go to the top of the page
+Quote Post
wewior
post 21.07.2011, 14:45:16
Post #13





Grupa: Zarejestrowani
Postów: 200
Pomógł: 8
Dołączył: 24.09.2003

Ostrzeżenie: (10%)
X----


A da radę jakimiś zmiennymi serwerowymi? Żeby nie trzeba było korzystać z Zend Framework. To prosta stronka i tylko takie rozpoznanie potrzebne: USA czy pozostali...


--------------------
- - -
PHP, HTML, JS, Quick.Cms v6.4, Quick.Cart v6.7, Simlery
- - -
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 15.08.2025 - 03:50