Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php?] skrypt wziazany z geolokalizacja
Forum PHP.pl > Forum > PHP
dariush
Witam,

Posiadam 2 zdjęcia: polska.jpg oraz wielkopolska.jpg
Chciałbym aby ludziom z wielkopolski przy załadowaniu strony otwierał się plik wielkopolska.jpg natomiast pozostałym polakom nie łączących się z wielkopolski tylko z innych województw otwierał się plik polska.jpg

Wiem tyle że do tego byłby potrzebny jakiś skrypt który obsługuje geolokalizacje.
Fakt jest taki, że nie jest programistą i nie jestem wstanie napisać gotowego takiego skryptu.

Chętnie taki kupie lub czekam na pomoc jeśli to jest kwestia 2,3 linijek kodu smile.gif
franki01
Rozpoznawanie, skad strone przeglada uzytkonik odbywa sie na podstawie domeny w hoscie dostawcy internetu. Czyli np jak sie jest w Netii ma sie *.adsl.inetia.pl. I na podstawie ostatnich liter (tutaj pl) rozpoznaje sie usera. W tych hostach czasami moze byc cos zwiazane z miastem, a czasami z instytucja. Nie da sie napisac skryptu ktory nawet w 20% rozpozna z jakiego wojewodztwa jest uzytkownik. Robi sie to prawie zawsze dla krajow, ale i tak nie zawsze osoba z Polski, bedzie miala host z .pl na koncu.
dariush
W sumie ma Pan racje. Bylo by to naprawde ciezkie do zrobienia (o ile w ogole mozliwe)
A co jesli chcialbym to zrobic dla uzytkownikow NETI dla Net24, dla TP neostrada i DSL, oraz UPC CHELLO ?
Teraz bylo by prościej prawda ?
Jakby to wygladalo ?
franki01
Wystarczy poszukac w googlach troche info nt. hostow poszczegolnych providerow. Dla Netii host konczy sie na ".adsl.inetia.pl", Neostrada - ".neoplus.adsl.tpnet.pl", DSL TP - ".internetdsl.tpnet.pl", a Chello - ".chello.pl". Wystarczy sprawdzic, czy host konczy sie tymi ciagami, czyli:

  1. <?php
  2. function provider($ip) {
  3. $host = gethostbyaddr($ip); // sprawdzanie hosta odwiedzajacego
  4.  
  5. $array = array (
  6. 'Netia' => '.adsl.inetia.pl',
  7. 'Neostrada' => '.neoplus.adsl.tpnet.pl',
  8. 'DSL TP' => '.internetdsl.tpnet.pl',
  9. 'Chello' => '.chello.pl'
  10. );
  11.  
  12. $net = 'Nieznany';
  13.  
  14. foreach($array as $key => $value) {
  15.  if(preg_match("(".preg_quote($value)."$)", $value)) {
  16. $new = $key;
  17. break;
  18.  }
  19. }
  20. }
  21.  
  22. $provider = provider($_SERVER['REMOTE_ADDR']);
  23. ?>



Funkcja provider() bedzie zwracala typ internetu.
Na szybko szukalem tych hostow i moglem sie pomylic. W razie czegos latwo poprawic smile.gif
harold82
GeoIP albo klasa Scout dostępna na wortalu...
Miela
Cytat(harold82 @ 10.12.2007, 20:36:13 ) *
GeoIP albo klasa Scout dostępna na wortalu...


Klasa Scout zaginęła...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.