HWSW Informatikai Kerekasztal: PHP - ország lekérdezése - HWSW Informatikai Kerekasztal

Ugrás a tartalomhoz

Mellékleteink: HUP | Gamekapocs

Oldal 1 / 1
  • Nem indíthatsz témát.
  • A téma zárva.

PHP - ország lekérdezése Ország vagy terület lekérdezése

#1 Felhasználó inaktív   hakan 

  • Újonc
  • Pipa
  • Csoport: Alkalmi fórumtag
  • Hozzászólások: 5
  • Csatlakozott: --

Elküldve: 2009. 02. 17. 11:48

Sziasztok!

Hogyan tudom lekérdezni, hogy valaki melyik országból látogatja meg az oldalt? A legtöbb fontos infot már megtudom a mellékelt kódból, de az hiányzik még, hogy melyik ország vagy terület, ahonnan jön  a látogató.

<?php
echo "<b>IP:</b> " . $_SERVER['REMOTE_ADDR'];
echo "<br>";
echo "<b>Host:</b> " . gethostbyaddr($_SERVER['REMOTE_ADDR']);
echo "<br>";
echo "<b>Böngésző:</b> " . $_SERVER['HTTP_USER_AGENT']
?> 


Elvileg azt kellene megoldanom, hogy egy adott országból ne lehessen megnézni az oldalt.

#2 Felhasználó inaktív   lordrolee 

  • Senior tag
  • PipaPipaPipaPipa
  • Csoport: Fórumtag
  • Hozzászólások: 2.908
  • Csatlakozott: --

Elküldve: 2009. 02. 17. 12:12

http://www.go4expert...read.php?t=3511

Ezekhez általában szükségeltetik egy adatbázis amiből a kód aztán kikeresi, hogy az ip nagy valószínűséggel melyik országhoz tartozik.
Kép

Xfire profil

LordRolee

#3 Felhasználó inaktív   Raynes 

  • Őstag
  • PipaPipaPipaPipaPipa
  • Csoport: Fórumtag
  • Hozzászólások: 14.740
  • Csatlakozott: --

Elküldve: 2009. 02. 17. 12:44

Ez szép és jó, amit lordrolee linkelt. Működik is, meg minden. Csakhogy az IP-k egy része nincs rendesen regisztrálva (garázs corp házisuffnicég szolgáltató). Ebben az esetben nem deríthető ki, hol van helyileg. Tartományvizsgálat se ad mindig pontos eredményt.

Az elképzelés kivitelezhetetlen. Nagy biztonsággal nem lehet eszerint szűrni. Másrészt, ahogy az oldal látogatója megtudja, hogy miért nem jelenik meg neki rendesen az oldal, proxy-t fog használni. Így átmegy az IP ellenőrzésen. Ingyenes, folyton frissülő proxy listákról (többségében http proxy) kiválaszt néhány proxy-t, amiket hely szerint is lehet szortírozni. Csak néhány überláma v0.9ß usert lehet így kizárni a látogatásból. Illetve őket is csak egy ideig, amíg valaki nem publikálja a megoldást, ha fontos az adott oldal. Ez a fogás nem jött be pl. a youtube.com-nak se a videokorlátozásoknál.

A világháló, főleg a http attól "világ", hogy mindenki megnézheti, teljes a szabadság, ami nem korlátozható, cenzúrázható. Lehet persze helyileg korlátozni, pl. belső hálózaton. De akkor az nem internet. Valaki vagy kitesz valami a világhálóra, mert vállalható, vagy NEM. Ha nem, akkor inkább ne publikálja.

Van még egy megoldás, hogy csinálsz mondjuk egy .php beléptetőoldalt, ahol előbb regisztrálnak a látogatók. Majd regisztráció után ellenőrzi az oldal adminja, webmestere a regisztrációt (technikai ellenőrzés, email kapcsolatfelvétel, nyelvi ellenőrzés). Ezután maga aktiválja, majd mailban értesíti a felhasználót. Az aktivált reggel (usernév, jelszó) meg a felhasználó be tud lépni az oldal nem publikus részeire. Sok felhasználónál viszont ez baromi sok meló, vagy sokemberes, tehát pénzigényes. Emellett fennáll a veszélye, hogy a regisztált felhasználó továbbadja a beléptetőadatait vagy lementi az oldal érdemi tartalmát, ha már bent van. Majd publikálja a saját oldalán, free file sharing oldalon, vagy kiteszi torrentre, megosztja p2p pl. DC-n, Edk-n, stb.

Szerkesztette: N0zer0 2009. 02. 17. 13:23 -kor

„The volume of a pizza of thickness a and radius z can be described by the following formula: pi zz a.”

#4 Felhasználó inaktív   hakan 

  • Újonc
  • Pipa
  • Csoport: Alkalmi fórumtag
  • Hozzászólások: 5
  • Csatlakozott: --

Elküldve: 2009. 02. 17. 13:27

Szia!

Nagyon köszönöm a segítséget. Van egy cég, akinek teljesen publikus szolgáltatásai vannak, de elsősorban külföld felé szeretne terjeszkedni és a jövőben a Magyar látogatók elől el szeretné zárni az oldalt.

Én egyszer találtam egy scriptet, ami megvizsgálta a böngésző nyelvét és vagy Magyar vagy Angol oldal felé irányította a látogatót. Hátha megvan még valahol...
-------------
GeoIP.dat

Most nézem és csak a Lite verzió ingyenes. Mindjárt komolyabban neki esek...
-------------
Amint említetted nem teljes megoldás, de részben megoldást jelenthet a fent említett oldal esetében. A felhasználó valamilyen internetes keresőben rákeres, majd egy az "oldal elköltözött" vagy "nem elérhető" oldalra dobja. Nem fog utána olvasgatni és keresni mi lehet a gond, egyszerűen tovább keres a neten.

Persze jobban örültem volna, ha egy változó kiadja, hogy 'hu', mert akkor minden egyszerűbb lenne.

Köszi még egyszer!!!

Szerkesztette: hakan 2009. 02. 17. 13:36 -kor


#5 Felhasználó inaktív   hakan 

  • Újonc
  • Pipa
  • Csoport: Alkalmi fórumtag
  • Hozzászólások: 5
  • Csatlakozott: --

Elküldve: 2009. 02. 17. 14:16

Sziasztok!

Innen lehet letölteni a csv fájlt:
http://www.maxmind.com/app/geolitecity

Itt van az API:
http://geolite.maxmi.../geoip/api/php/

Most ezt vagy berakom SQL-be és frissítgetem néha vagy fájl alapú adatbázissal dolgozgatok, de azt is kell frissíteni.

A csv fájl felépítése:
"begin_ip","end_ip","begin_num","end_num","country","name"

Próbálom az itt lévő sample.php alkalmazást futtatni, de semmi.

#6 Felhasználó inaktív   hakan 

  • Újonc
  • Pipa
  • Csoport: Alkalmi fórumtag
  • Hozzászólások: 5
  • Csatlakozott: --

Elküldve: 2009. 02. 17. 15:50

Sziasztok!

Na eljutottam idáig, már csak egy kis segítség kellene, hogy hasítson a dolog:

<?  

$usedb = "GeoIP.dat"; 

$data = file($usedb);
$success = FALSE;

$IPcim = $_SERVER['REMOTE_ADDR'];
$mitkeres = $IPcim;

for($i=0; $i<count($data); $i++) {
  $dataex = explode("|",$data[$i]);
  if($dataex[0] >= $mitkeres OR $dataex[1] <= $mitkeres) {
    $success = TRUE;
  }
}
if($success)
  print "IP címed: $IPcim | Adatbázis: $dataex[0] | $dataex[1] | $dataex[4] | $dataex[5]";
else
  print "Sajnálom, nem találtam a keresésnek megfelelőt.";
?>


Nagyon fontos, hogy az ingyenesen letölthető adatbázis fájlt egy kissé módosítani kell.
1. Tömörítsük ki és nevezzük át [GeoIPCountryWhois.csv]: GeoIP.dat -ra.
2. Távolítsuk el az összes idézőjelet ["] jelet.
3. Én a vesszőket [,] is kicseréltem [|] jelre.

Szerkesztette: hakan 2009. 02. 17. 16:02 -kor


Téma megosztása:


Oldal 1 / 1
  • Nem indíthatsz témát.
  • A téma zárva.

1 felhasználó olvassa ezt a témát.
0 felhasználó, 1 vendég, 0 anonim felhasználó