Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nazwa państwa z adresu hosta
Forum PHP.pl > Forum > Przedszkole
gladiror
Witam!
Chciałem dowiedzieć się czy z nazwy hosta/ adresu IP można wyciagnąć nazwę państwa z którego jest użytkownik?

Przykład:
Mamy adres: rn120.neoplus.adsl.tpnet.pl

Koniec tego adresu zawiera ".pl".

Czy przy pomocy tego możemy zawsze określić że dana osoba łączy się z konkretnego kraju, w tym wypadku POlski?
LBO
jezeli mowimy o nazwie hosta to napewno... ip dla uzytkownikow neta, nie koncza sie domena org., .net itp... wiec zawsze mozna panstwo wyciagnac - putanie skad.. albo sam stworzysz tablice, albo poszukaj - moze ktos stworzyl cos podobnego (moze mechanizm DNS to umozliwia?).. chyba to samo tyczy sie samych adresow IP (odwrotny DNS?)
mike
Ojej, ależ to już było omawiane wiele razy.
Zajrzyj tutaj: ip-to-country.
I szukaj pod hasłem geolokalizacja.
Hubi.pl
tutaj masz również gotową klase do takiej detekcji użytkowników:
http://www.phpclasses.org/browse/package/1477.html

pzdr.
gladiror
@mike_mech thx za pomoc, na stronce znalazłem bardzo dużo informacji i pomocy winksmiley.jpg Przy okazji pokaże wszystkim innym zainteresowanym jak trzeba to zrobić...

Tworzymy tabele w bazie danych, np. o nazwie "ip":
  1. CREATE TABLE `ip` (
  2. `IP_FROM` double NOT NULL DEFAULT '0',
  3. `IP_TO` double NOT NULL DEFAULT '0',
  4. `COUNTRY_CODE2` char(2) NOT NULL DEFAULT '',
  5. `COUNTRY_CODE3` char(3) NOT NULL DEFAULT '',
  6. `COUNTRY_NAME` varchar(50) NOT NULL DEFAULT ''
  7. ) TYPE=MyISAM;


Później musimy naszą tabele wypełnić danymi - ściagamy plik:

Baza

I dodajemy go do bazy danych...

następnie używamy skryptu:

  1.  
  2. <?
  3.  
  4.     //---------------------------------------------------
  5.     // Sample code to display Visitor Country information 
  6.     // php 4 
  7.     //---------------------------------------------------
  8.  
  9.  
  10.     // Establishing a database connection
  11.     $dbh=mysql_connect("localhost:3306","$MYSQL_USERNAME","$MYSQL_PASSWORD");
  12.     mysql_select_db("$MYSQL_DBNAME");
  13.  
  14.  
  15.     // Query for getting visitor countrycode
  16.     $country_query  = "SELECT country_code2,country_name FROM iptoc ".
  17.          "WHERE IP_FROM<=inet_aton('$REMOTE_ADDR') ".
  18.           "AND IP_TO>=inet_aton('$REMOTE_ADDR') ";
  19.  
  20.  
  21.     // Executing above query
  22.     $country_exec = mysql_query($country_query);
  23.  
  24.  
  25.     // Fetching the record set into an array
  26.     $ccode_array=mysql_fetch_array($country_exec);
  27.  
  28.  
  29.     // getting the country code from the array
  30.     $country_code=$ccode_array['country_code2'];
  31.  
  32.  
  33.     // getting the country name from the array
  34.     $country_name=$ccode_array['country_name'];
  35.  
  36.  
  37.    // Display the Visitor coountry information
  38.    echo "$country_code - $country_name";
  39.  
  40.  
  41.    // Closing the database connection
  42.    mysql_close($dbh);
  43.  
  44.  
  45. ?>


Kod pobrany ze strony... 

Jeszcze trzeba poprawić adresy hosta, hasło, login i nazwe bazy danych i tabeli 
I elegancko powinno wyświetlać winksmiley.jpg
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.