Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [skrypt] Geolokalizacja adresów IP
Bastion
post
Post #1





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

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


Napisalem skrypt korzystajacy z bazy danych openGeo ( http://opengeo.niwidu.org/ ) . Dodalem do niej wlasne rekordy informacyjne takie jak gmina , i lokalizacje na mapie Polski. W chwili obecnej rozpoznowane jest 18000 adresow IP. Chetnych zaprazam pod ten adres http://www.dna.ltd.pl/ScoutX/ w celu sprawdzenia czy dziala. Apeluje takze o rejestracje na http://opengeo.niwidu.org/ w przypadku jesli twoj adres IP nie zostal wykryty. Baza openGeo posiada obecnie zarejestrowanych 22000 adresow. Zrdodla jak i przerobiona baze danych udostepnie juz wkrotce.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Bastion
post
Post #2





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

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


AAAa takie buty (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

@dr_bonzo : dzieki, o to chodzilo

@crsshu : chyba twoj sposob nie zadziala bo 192.169. juz nie jest adresem lokalnym.

Final :

  1. <?
  2.  
  3. function checkIPNet($ip,$net,$mask)
  4. {
  5. $lip = ip2long($ip);
  6. $lnet = ip2long($net);
  7. $str1 = substr(str_pad(decbin($lip),32,&#092;"0\",\"STR_PAD_LEFT\"),0,$mask);
  8. $str2 = substr(str_pad(decbin($lnet),32,&#092;"0\",\"STR_PAD_LEFT\"),0,$mask);
  9. return(strcmp($str2,$str1)==0);
  10. }
  11.  
  12. function isLocalAddress($ip)
  13. {
  14. $private = array(&#092;"127.0.0.0/8\",\"10.0.0.0/8\",\"172.16.0.0/12\",\"192.168.0.0/16\");
  15. foreach ( $private as $subnet )
  16. {
  17. list($net,$mask) = split(&#092;"/\",$subnet);
  18. if (checkIPNet($ip,$net,$mask))
  19. {
  20. return(true);
  21. }
  22. }
  23. return(false);
  24. }
  25.  
  26. if ($_SERVER[&#092;"HTTP_X_FORWARDED_FOR\"])
  27. {
  28. if ($_SERVER[&#092;"HTTP_CLIENT_IP\"])
  29. {
  30. $proxy = $_SERVER[&#092;"HTTP_CLIENT_IP\"];
  31. } else
  32. {
  33. $proxy = $_SERVER[&#092;"REMOTE_ADDR\"];
  34. }
  35. $ip = $_SERVER[&#092;"HTTP_X_FORWARDED_FOR\"];
  36. } else
  37. {
  38. if ($_SERVER[&#092;"HTTP_CLIENT_IP\"])
  39. {
  40. $ip = $_SERVER[&#092;"HTTP_CLIENT_IP\"];
  41. } else
  42. {
  43. $ip = $_SERVER[&#092;"REMOTE_ADDR\"];
  44. }
  45. }
  46.  
  47.  
  48. $tip = str_replace(&#092;" \",\"\",split(\",\",$ip));
  49.  
  50. if ($tip>2)
  51. {
  52. $ip = array_pop($tip);
  53. }
  54.  
  55. if (isLocalAddress($ip)) { $ip = $proxy; }
  56.  
  57. ?>
Go to the top of the page
+Quote Post

Posty w temacie
- Bastion   [skrypt] Geolokalizacja adresów IP   7.02.2005, 14:33:28
- - Vertical   CytatWystąpił błąd podczas ładowania http://openge...   7.02.2005, 17:58:08
- - Bastion   coś im chyba padło ale http://www.dna.ltd.pl/Scou...   7.02.2005, 18:11:29
- - Vertical   Działa, ale wysypuje: CytatSZUKAM: 1394282486 / 83...   7.02.2005, 18:19:58
- - Bastion   pewnie jakis problem techniczny   7.02.2005, 19:01:07
- - Kinool   hmm mi wyskoczylo ze adres jest w zablokowan puli ...   7.02.2005, 22:58:55
- - Bastion   z tego co wiem baza opengeo odrzuca adresy IP jak ...   7.02.2005, 23:30:24
- - rogrog   dobry - mnie zlokalizował elegancko i pokazał na m...   8.02.2005, 20:48:49
- - Vertical   Teraz już działa... ale z kolei: CytatTen adres IP...   8.02.2005, 21:00:08
- - Puciek   Idealnie wskazalo mojego dostawce Moglo by jeszcz...   8.02.2005, 21:28:06
- - Bastion   Niestety jestem ograniczony tylko do nazwy wojewod...   8.02.2005, 21:30:23
- - Bakus   To ja może dorzucę coś od siebie... http://dev.id...   8.02.2005, 23:51:40
- - Bastion   Drobny update i kolejny preview. http://www.dna....   9.02.2005, 20:24:31
- - Vertical   Nowe mapy są bardzo ładne, zwłaszcza ten gradient ...   9.02.2005, 21:09:33
- - Bastion   dodalem na szybko detekcje systemu i przegladarki....   9.02.2005, 21:50:58
- - crash   Świetne poprawki. Zwłaszcza wykrywanie mojego IP z...   9.02.2005, 22:07:44
- - Bastion   Crashu a teraz?   9.02.2005, 22:17:45
- - crash   Dalej to samo, ale tak czy inaczej nie wykrywało m...   9.02.2005, 22:40:28
- - Bastion   aaaaaaaaa, crashu jesli rejestrowales IP po 1 luty...   9.02.2005, 22:52:02
- - crash   No nie jest. Sprawdzasz REMOTE_ADDR?   10.02.2005, 01:24:16
- - Bastion   [PHP] pobierz, plaintext <? if ($_SERV...   10.02.2005, 07:27:39
- - crash   Ja wiem dlaczego. Moja sieć jedzie na klasie adres...   10.02.2005, 10:15:48
- - kszychu   Panowie, ja jak zwykle w kwestii formalnej: Do jas...   10.02.2005, 10:28:28
- - Bastion   @kszychu : racja, przepraszam. ale w sumie dzieki ...   10.02.2005, 10:56:37
- - crash   Hihi Ja tylko zgłosiłem błąd jak to przy ocenie w...   10.02.2005, 13:19:21
- - Bastion   Crashu wskaz mi co tu wprowadza blad bo juz glupi...   10.02.2005, 18:20:32
- - dr_bonzo   http://www.iana.org/faqs/abuse-faq.htm Cytat...   10.02.2005, 18:34:59
- - crash   Bastion: sprawdzaj tylko najstarszy bajt adresu. [...   10.02.2005, 18:43:24
- - Bastion   AAAa takie buty @dr_bonzo : dzieki, o to chodz...   10.02.2005, 19:20:05
- - squid   napisalem sobie cos takiego: http://celeron.valkyr...   4.01.2006, 21:38:27
- - dr_bonzo   Ja bym wylaczyl mozliwosc skanowania portow -- jes...   4.01.2006, 21:47:52
- - squid   Cytat(dr_bonzo @ 2006-01-04 22:47:52)Ja bym w...   4.01.2006, 21:50:28
- - sztosz   @squid: Działa, co do miejscowości to się pomylił ...   4.01.2006, 21:52:47
- - squid   Cytat(sztosz @ 2006-01-04 22:52:47)@squid: Dz...   4.01.2006, 21:55:48
- - kowal1122   nie dziala, strona się nie otwiera   7.01.2006, 20:51:08
- - dr_bonzo   Czytac, czytac, czytac Cytatto jest dostepne teraz...   7.01.2006, 21:14:09
- - squid   adres, ktory podalem dziala (jeszcze). zniknie na ...   7.01.2006, 21:18:34


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: 25.12.2025 - 20:34