php script na zistenie statu podla IP

Programovacie jazyky, rady, poradňa...
neppo
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 774
Registrovaný: 09 jún 2005, 15:33

php script na zistenie statu podla IP

Príspevok od používateľa neppo »

nemate niekto takyto script ? staci mi iba cisto tento pripad...
mam IP a podla nej mi vypise len stat z ktorej IP pochadza
geoge046
Star
Star
Používateľov profilový obrázok
Príspevky: 608
Registrovaný: 10 aug 2005, 14:15
Bydlisko: Prievidza
Kontaktovať používateľa:

Príspevok od používateľa geoge046 »

no s takymto niecim som este nerobil ale ked pouzijes tento kod

Kód: Vybrať všetko

gethostbyaddr($REMOTE_ADDR);
tak to ti vypise adresu PC ktore si momentalne prezera stranku.
vypise to v nejakom takomto formate:

Kód: Vybrať všetko

adsl-d101.91-47-121.t-com.sk
A dalo by sa urobit ze by to z koncovky (v tomto pripade sk) urcilo štát.

ALe možno je na to aj priamo nejaka funkcia, ale toto su len domienky :P
neppo
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 774
Registrovaný: 09 jún 2005, 15:33

Príspevok od používateľa neppo »

ja mam konkretne nieco ine na mysli... mam databazu IP adries a potrebujem k nim priradit krajinu do ktorej patria
turtlak69
Guru
Guru
Príspevky: 2896
Registrovaný: 10 máj 2007, 15:58
Bydlisko: /dev/null

Príspevok od používateľa turtlak69 »

no ja by som to spravil nasledovne...

Kód: Vybrať všetko

$host=gethostbyaddr($REMOTE_ADDR);
$host=explode(".",$host);
$p=count($host);
$state=$host[$p-1];

echo $state;
kedze ty nechces zistit krajinu tvojej IP, tak namiesto premennej $REMOTE_ADDR pouzijes premennu, kde bude ta IP, ktorej stat chces zistit. i ked sa to podla mna takymto sposobom nerobi, ale mozno som sa trafil :)
neppo
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 774
Registrovaný: 09 jún 2005, 15:33

Príspevok od používateľa neppo »

turtlak69 napísal:no ja by som to spravil nasledovne...

Kód: Vybrať všetko

$host=gethostbyaddr($REMOTE_ADDR);
$host=explode(".",$host);
$p=count($host);
$state=$host[$p-1];

echo $state;
kedze ty nechces zistit krajinu tvojej IP, tak namiesto premennej $REMOTE_ADDR pouzijes premennu, kde bude ta IP, ktorej stat chces zistit. i ked sa to podla mna takymto sposobom nerobi, ale mozno som sa trafil :)
thx K+
geoge046
Star
Star
Používateľov profilový obrázok
Príspevky: 608
Registrovaný: 10 aug 2005, 14:15
Bydlisko: Prievidza
Kontaktovať používateľa:

Príspevok od používateľa geoge046 »

A nedalo by sa ze by vypisalo priamo štát?
ehm123
King
King
Príspevky: 1658
Registrovaný: 27 feb 2006, 6:45
Bydlisko: PD / Praha

Príspevok od používateľa ehm123 »

tak si das nejake preg replace a sk zamenis za Slovensko atd
turtlak69
Guru
Guru
Príspevky: 2896
Registrovaný: 10 máj 2007, 15:58
Bydlisko: /dev/null

Príspevok od používateľa turtlak69 »

iste, ale to je uz piplacka... navyse nie je to zaruceny sposob, ze by to tak malo fungovat. casto to posledne za poslednou bodkou nie je ani sk, ani cz ani nic take. napriklad som si pozrel teraz statistiky na mojej stranke a aj taketo nieco sa tam objavilo
212.117.119.217.in-addr.arpa (stat arpa neexistuje. je to ISP arpa)
85.248.126.34 (dns zaznam nie je, takze namiesto toho som dostal len IP)
ale dalo by sa tymto spravit aj vypis statov

Kód: Vybrať všetko

if ($state == "sk")
{
$state="Slovensko";
}
elseif ($state == "cz")
{
$state="Česko";
}
.
.
.
else
{
$state="neznáma krajina";
}
echo $state;
tie bodky su akoze porkacovanie. takto by sa to mozno aj dalo. alebo aj cez str_replace. no efektivita nie je zdaleka 100%. chcelo by to nieco dokonalejsie.

//warezman ma predbehol :(
ehm123
King
King
Príspevky: 1658
Registrovaný: 27 feb 2006, 6:45
Bydlisko: PD / Praha

Príspevok od používateľa ehm123 »

hmm ale to co si napisal ty nieje moc efektivne...vela sa napises :D

$x[2] = 'com';
$x[1] = 'cz';
$x[0] = 'sk';

$y[2] = 'Zahranicie';
$y[1] = 'Cesko';
$y[0] = 'Slovensko';


$text_prispevku = preg_replace($x,$y, $text_prispevku);

a este previest host na male pismena aby to vedelo identifikovat
turtlak69
Guru
Guru
Príspevky: 2896
Registrovaný: 10 máj 2007, 15:58
Bydlisko: /dev/null

Príspevok od používateľa turtlak69 »

ano toto je ovela lepsie riesenie :) hmm ale este som nevidel ze by boli aj velke pismena v retazci... ale pre istotu by to asi nebolo na skodu. btw mohol si uz ten prikaz aj napisat nech je to pokope. ja s retazcami robit neviem, takze ho ani napisat nemozem :D ale tusim je to nieco ako

Kód: Vybrať všetko

$string = strtolower($string);
no nie som si prilis isty...
geoge046
Star
Star
Používateľov profilový obrázok
Príspevky: 608
Registrovaný: 10 aug 2005, 14:15
Bydlisko: Prievidza
Kontaktovať používateľa:

Príspevok od používateľa geoge046 »

Hentak to je viem aj ja :D zase taky blbí niesom :D
Len ja som sa pytal na to ze by to vedelo vypisat vsetky krajiny na svete. Bo ked napriklad pridete na stranku http://www.clickclickclick.com/ tak to automaticky vie ze z akej krajiny ste ;). Ze by to vsetko manualne vypisovali?
neppo
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 774
Registrovaný: 09 jún 2005, 15:33

Príspevok od používateľa neppo »

ja to potrebujem na jeden zoznam uzivatelov... pripajaju sa na herny server a zapisuju sa okrem ineho aj ich IP adresy do txt suborov... ja chcem len kazdej IP z toho txt priradit stat... takze pre toto to potrebujem a nie na to ze ked si niekto pozre moju stranku ukaze mu z kade je !!!!
geoge046
Star
Star
Používateľov profilový obrázok
Príspevky: 608
Registrovaný: 10 aug 2005, 14:15
Bydlisko: Prievidza
Kontaktovať používateľa:

Príspevok od používateľa geoge046 »

ano jasne ale ja sa to pytam z osobneho hladiska ;)
turtlak69
Guru
Guru
Príspevky: 2896
Registrovaný: 10 máj 2007, 15:58
Bydlisko: /dev/null

Príspevok od používateľa turtlak69 »

na hotscripts.com by to mohlo byt. ale predsa len to musel niekto spisat. takze je to asi to iste ako ked si to napises sam.. skus kuknut tam ;) je tam vela dobrych veci
ehm123
King
King
Príspevky: 1658
Registrovaný: 27 feb 2006, 6:45
Bydlisko: PD / Praha

Príspevok od používateľa ehm123 »

geoge046 napísal:Hentak to je viem aj ja :D zase taky blbí niesom :D
Len ja som sa pytal na to ze by to vedelo vypisat vsetky krajiny na svete. Bo ked napriklad pridete na stranku http://www.clickclickclick.com/ tak to automaticky vie ze z akej krajiny ste ;). Ze by to vsetko manualne vypisovali?
hmm sak som napisal ako to robia..
geoge046
Star
Star
Používateľov profilový obrázok
Príspevky: 608
Registrovaný: 10 aug 2005, 14:15
Bydlisko: Prievidza
Kontaktovať používateľa:

Príspevok od používateľa geoge046 »

Ano toto viem. Celu Europu som si uz pozbieral. Ale podla coho mozete este urcit aj mesto?
Napriklad na jednej zahranicnej stranke, pridem na tu stranku a hned vypise moje mesto teda Prievidza. A vypise vzdy aktualne mesto v ktorom ste (teda okresnom). Ak sa to da zistit?
Mek
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4661
Registrovaný: 23 mar 2005, 23:00
Bydlisko: ZA <-> TN
Kontaktovať používateľa:

Príspevok od používateľa Mek »

ja by som skor skusil pouzit na tento ucel databazu vsetkych ISP na celom svete, kde mas napisany aj kod a nazov krajiny a IP adresy v dvoch formatoch. Ten subor sa vola GeoIPCountryWhois.csv a ma okolo 6 MB. Je to textovy subor, da sa sosnut z www.maxmind.com a pravidelne je aktualizovany. Takze ak sa ti chce piplat, mozes si dorobit dokonca aj vlajocky statov :wink:
Takto dostanes vysledok aj napriek tomu, ze dana IP nema reverzny DNS zaznam, ci sa konci na .arpa, .com, .net a podobne exotiny.
Druha otazka je, ze prehladavanie tohto suboru by bolo asi dost pomale. Neviem, treba vyskusat.
turtlak69
Guru
Guru
Príspevky: 2896
Registrovaný: 10 máj 2007, 15:58
Bydlisko: /dev/null

Príspevok od používateľa turtlak69 »

hladat nieco v subore, ktory ma skoro 95k riadkov asi nie je prilis efektivne. keby sa este nasiel daky skript, ktory by to skopcil dako do databazy, tak by to bolo velmi pouzitelne. no kazdopadne toto je ten sposob, ako na to a nie je rozbijat dns zaznam a na zaklade posledneho retazca za bodkou vydedukovat krajinu :lol:
Mek
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4661
Registrovaný: 23 mar 2005, 23:00
Bydlisko: ZA <-> TN
Kontaktovať používateľa:

Príspevok od používateľa Mek »

hele vsak CSV subor sa da importovat do databazy... alebo sa mylim?
nemam cas to skumat, ale kazdopadne by to bolo dost zaujimave riesenie... :wink:
turtlak69
Guru
Guru
Príspevky: 2896
Registrovaný: 10 máj 2007, 15:58
Bydlisko: /dev/null

Príspevok od používateľa turtlak69 »

no neviem ci sa mylis. s cvs nemam absolutne ziadne skusenosti. no ak by sa to dalo, tak potom je to fakt super riesenie :)
Napísať odpoveď