[ JovanT @ 03.10.2004. 18:46 ] @
Može li neko da mi objasni kako ova slika koja se nalazi u mom postu radi? Pretpostavljam da je to izvedeno preko PHP-a i GD biblioteke. I kako oni mogu da saznaju ime provajdera?![]() |
[ JovanT @ 03.10.2004. 18:46 ] @
[ boccio @ 03.10.2004. 20:46 ] @
$_SERVER['REMOTE_ADDR']
provuci ovo kroz php, i videces svoj IP...a ako ovo recimo okacis na net i logujes, videces IP svakog ko otvori tu stranicu... [ NetworkAdmin @ 04.10.2004. 11:42 ] @
heheehe sto ovaj tvoj mish ne moze da pravilno odredi moj ip i OS a ni browser
[ JovanT @ 09.11.2004. 21:36 ] @
Provukao sam ovu funkciju kroz PHP i parser mi javlja grešku. Jel može neko malo bolje da mi objasni kako ova skripta funkcioniše i kako uopšte može da "provali" ime provajdera?
[ stefaneg @ 09.11.2004. 22:12 ] @
Koliko sam ja upucen (a veruj mi i nisam bas) sve promenljive u klijentu i serveru mozes dobiti pozivanjem funkcije phpinfo(), ali konkretno nemam pojma kako radi. Hajde daj mi skriptu MNOGO MI SE SVIDJA :-)
[ JovanT @ 09.11.2004. 23:06 ] @
Ma poslao bih ja da imam. Ne znam ni kako izgleda skripta zato pitam kako to funkcioniše. Ako hoćeš da i ti imaš ovako nešto poseti http://www.danasoft.com i registruj se.
[ Milos Stojanovic @ 09.11.2004. 23:18 ] @
recimo
Code: <?php echo "Your IP is: ".$_SERVER['REMOTE_ADDR']; echo "<br />You use ".$_SERVER['HTTP_USER_AGENT']; echo "<br />I ownZ uR 4ss"; ?> evo kako to izgleda: http://tesla.rcub.bg.ac.yu/~strooper/yourip.php [ webmaster1 @ 10.11.2004. 08:03 ] @
E dalja razrada kaze ovako....Uzmes remote adress,pa otkines zadnja 2 slova(procitas ih i uporedis sa nizom drzava koji vec imas-da bi eventualno indentifikovao drzavu), pa otkines zandnjih x slova kako bi stigao do druge tacke od pozadi - da bi dobio ono ptt.yu...Za user agent vec imas dat source na ovo forumu, koristi pretragu!!!Ma nije to neka nauka:)
[ mordor @ 10.11.2004. 10:04 ] @
Citat: webmaster1: E dalja razrada kaze ovako....Uzmes remote adress,pa otkines zadnja 2 slova(procitas ih i uporedis sa nizom drzava koji vec imas-da bi eventualno indentifikovao drzavu), pa otkines zandnjih x slova kako bi stigao do druge tacke od pozadi - da bi dobio ono ptt.yu...Za user agent vec imas dat source na ovo forumu, koristi pretragu!!!Ma nije to neka nauka:) aaa ne! hahh za trazenje drzave ip2country isp ces teeeesko tako dobiti [ JovanT @ 15.11.2004. 14:21 ] @
Evo još jednog problema na koji sam naišao. Hoću da se na jednoj stranici prikazuje tačan datum i tačno vreme u srednjeevropskoj časovnoj zoni (GMT+1 - naša časovna zona). Problem je u tome što server na kojem je .php stranica prikazuje vreme u časovnoj zoni GMT+br tako da "echo date" ili slične fore ne dolaze u obzir. Postoji li način da se ovaj problem reši? Probao sam sa najprostijim rešenjem koje sam mogao da uradim tako što sam definisao promenljivu $sat=date("H") + 1 i nakon toga izvršio echo "$sat". To je prvih dva minuta izgledalo OK ali sam se srećom setio da kada $sat dođe na vrednost 24, dan treba da se promeni za jedan, pa isto tako i mesec, godina (kada dođe vreme za to)... Tako sam se stvarno grdno zapetljao i rešio da pomoć potražim ovde. Dakle kako se rešava ovaj problem ili on jednostavno nema rešenja :(.
[ bzero @ 15.11.2004. 14:51 ] @
Code: print date("d-M-y H:i:s", time() + 3600); PHP manual treba malo pogledati: http://www.php.net/manual/en/ref.datetime.php [ webmaster1 @ 18.11.2004. 19:27 ] @
Citat: ne! hahh za trazenje drzave ip2country isp ces teeeesko tako dobiti Sto ne? [ Nemanja Avramović @ 18.11.2004. 23:06 ] @
A kako meni pronalazi ISP i zemlju, kad mi je hostname blablabla.net?
a kako to uraditi bez baze? ip2country koristi bazu, ja 'ocu bez baze :) jel ima neko gotov array za zemlje? [ mordor @ 19.11.2004. 02:02 ] @
Citat: webmaster1: Sto ne? po tebi su korisnici recimo... yubc-a odakle? ne moze bez baze to da bude nikako pouzdano [ webmaster1 @ 19.11.2004. 10:02 ] @
Pa to jes!
Al vecina se zavrsava oznakom zemlje...a posto je ovo sve radi zajebancije onda i nije tako strasno sto ce ga zbuniti .net ili .62, u tom slucaju kaze lepo "Pa brate gde ti zivis" i to je to:) [ JovanT @ 20.11.2004. 11:25 ] @
A kakav izlaz imaju funkcije gethostbyaddr i gethostbyname. Na njih sam slučajno naleteo u PHP Manual-u. Trenutno nemam vremena da ih dovoljno proučim pa se pitam da nisu možda one upotrebljene za gore navedenu sliku?
I molim vas da mi malo bolje pojasnite tu ip2country metodu. Kao što ste možda primetili, ova skripta baš precizno određuje provajdera. [ Zoran Rašković @ 20.11.2004. 18:16 ] @
Code: $host = gethostbyaddr($_SERVER['REMOTE_ADDR']); $temp = explode(".", $host); $velicina = sizeof($temp); $provider = $temp[$velicina-2] . '.' . $temp[$velicina-1]; Ovo sam napamet napisao, ali bi $provider trebalo da nam da npr "verat.net" u mom slučaju. E sad, nisam siguran ni da li radi ono na tom principu... [ JovanT @ 27.11.2004. 19:32 ] @
Super! Radi! Samo bih te zamolio da mi malo pobliže objasniš svaku liniju tog koda. Prve tri su mi uglavno jasne ali ova četvrta ni malo.
btw, kako se određuje koji OS ima posetilac? Našao sam u PHPinfo-u $_ENV["OS"] ali mi on u XP-u vraća Windows_NT. [ Zoran Rašković @ 27.11.2004. 20:53 ] @
Ta poslednja linija uzima vrednosti promenljivih iz niza $temp na pozicijama $velicina-2 i $velicina-1 (2 poslednje reči u host name-u) i spaja ih u jedan string pomoću operatora spajanja, a to je tačka. i još između njih stavlja jednu tačku kao običan string... tako dobiješ npr "verat.net" ili "eunet.yu". Valjda sam lepo objasnio.
[ webmaster1 @ 28.11.2004. 09:00 ] @
Na ovom forumu je neko postovao kod..ne mogu sada da trazim izvorni post,pa ti evo ovako:
Code: /* Simple OS Detection script */ $OS = $HTTP_USER_AGENT; $OSList = Array ( /* Windows */ "Win|Windows", "Win16|Windows", "Win95|Windows 95", "Win98|Windows 98", "Win32|Windows", "WinNT|Windows NT", "Windows 3.1|Windows 3.1", "Windows 95|Windows 95", "Windows CE|Windows CE", "Windows 98|Windows 98", "Windows NT|Windows NT", "Windows NT 5.0|Windows 2000", "Windows NT 5.1|Windows XP", /* Macintosh */ "Mac_68000|MacOS m68K", "Mac_68K|MacOS m68K", "Mac_PowerPC|MacOS PPC", "Mac_PPC|MacOS PPC", "Macintosh|MacOS", /* Unices */ "X11|UNIX", "BSD|BSD", "SunOS|SunOS", "IRIX|IRIX", "HP-UX|HP-UX", "AIX|AIX", "QNX|QNX", "SCO_SV|SCO UNIX", "FreeBSD|FreeBSD", "NetBSD|NetBSD", /* Linux */ "Linux|Linux", "Debian|Debian GNU/Linux", /* Other */ "BeOS|BeOS", "OS/2|OS/2", "AmigaOS|AmigaOS", ); foreach ($OSList as $OSNow) { $OSNow = explode ("|", $OSNow); if (eregi ($OSNow[0], $OS)) { $EndOS = $OSNow[1]; $Check = "No"; } elseif ($Check != "No") { $EndOS = "Unknown"; } } print "$EndOS"; ?> [ Ser_Boyler @ 01.12.2004. 17:57 ] @
Kod mene ova skripta radi samo kad umesto prve linije koda ubacim ovu:
$OS = getenv("HTTP_USER_AGENT"); [ JovanT @ 02.12.2004. 19:20 ] @
Da, isto je i kod mene. Dakle problem je konačno rešen. Šaljem i gotovu
skriptu koja radi ovaj posao (samo bez GD biblioteke). Code: <?php /* Skripta za prepoznavanje imena provajdera */ $host = gethostbyaddr($_SERVER['REMOTE_ADDR']); $temp = explode(".", $host); $velicina = sizeof($temp); $provider = $temp[$velicina-2] . '.' . $temp[$velicina-1]; /* Skripta za prepoznavanje operativnog sistema */ $OS = getenv("HTTP_USER_AGENT"); $OSList = Array ( /* Windows */ "Win|Windows", "Win16|Windows", "Win95|Windows 95", "Win98|Windows 98", "Win32|Windows", "WinNT|Windows NT", "Windows 3.1|Windows 3.1", "Windows 95|Windows 95", "Windows CE|Windows CE", "Windows 98|Windows 98", "Windows NT|Windows NT", "Windows NT 5.0|Windows 2000", "Windows NT 5.1|Windows XP", /* Macintosh */ "Mac_68000|MacOS m68K", "Mac_68K|MacOS m68K", "Mac_PowerPC|MacOS PPC", "Mac_PPC|MacOS PPC", "Macintosh|MacOS", /* Unix-oliki */ "X11|UNIX", "BSD|BSD", "SunOS|SunOS", "IRIX|IRIX", "HP-UX|HP-UX", "AIX|AIX", "QNX|QNX", "SCO_SV|SCO UNIX", "FreeBSD|FreeBSD", "NetBSD|NetBSD", /* Linux */ "Linux|Linux", "Debian|Debian GNU/Linux", /* Ostali */ "BeOS|BeOS", "OS/2|OS/2", "AmigaOS|AmigaOS", ); foreach ($OSList as $OSNow) { $OSNow = explode ("|", $OSNow); if (eregi ($OSNow[0], $OS)) { $EndOS = $OSNow[1]; $Check = "No"; } elseif ($Check != "No") { $EndOS = "Unknown"; } } //Ispisivanje svih podataka echo "Vaša IP adresa je: ".$_SERVER['REMOTE_ADDR']; echo "<br/>Vaš provajder se zove: $provider"; echo "<br/>Koristite $EndOS operativni sistem."; echo "<br/>Surfujete sa ".$_SERVER['HTTP_USER_AGENT']; echo "<br/>Ovde ide tekst koji želite da koristite..."; ?> Postoji samo još jedna stvar. Pošto moj provajder nema oznaku tipa verat.net nego samo IP, skripta uopšte ne prikazuje liniju u kojoj ispisuje ime provajdera. Da li možda znate kako se ovo može uraditi? [Ovu poruku je menjao JovanT dana 13.01.2005. u 22:33 GMT+1] [ JovanT @ 13.01.2005. 21:31 ] @
Pošto sam i u naslovu stavio "nekoliko pitanja" evo još jednog:
Možete li mi protumačiti sledeću liniju koda: Code: $topic = (empty($_GET['topic'])) ? "-1" : $_GET['topic']; [ x kepa x @ 14.01.2005. 00:13 ] @
naravski, to ti je skrachena IF sintaksa...
dakle: $topic je jednako ( u sluchaju da je $_GET['topic'] prazan ) "-1" a ukoliko nije prazan onda dobija vrednost $_GET['topic'] u sushtini to ti je apsolutno isto kao da si napisao: Code: if(empty($_GET['topic'])){ $topic = "-1"; } else{ $topic = $_GET['topic']; } samo je krache, lepshe... one-line... [ JovanT @ 22.02.2005. 20:28 ] @
Hvala ti na odgovoru.
Sledeće pitanje je: kako da u određenom tekstu zameni <a href=bilo sta>Neko ime</a> sa nečim drugim (tačnije želeo bih da to izbrišem). Mislim da bi to trebalo da se odradi putem funkcija preg_replace ili ereg_replace ali pošto mi Regular Expressions ne idu najbolje nisam uspeo pa se pitam kako bi to trebalo da izgleda. Znači treba izbrisati sve linkove u jednom tekstu. [ NikolaVeber @ 22.02.2005. 20:54 ] @
Sto se tice pitanja sa reg.exp., pogledaj na guglu, ima dobrih primera, a vrlo verovatno i tacno to sto ti treba.
http://www.php.net/preg_replace - tu ima primer gde se svi tagovi brisu, probaj malo da se igras. A ovo za if: Code: $topic = (empty($_GET['topic'])) ? "-1" : $_GET['topic']; Citat: samo je krache, lepshe... one-line... [ JovanT @ 18.03.2005. 10:36 ] @
Pa isto to bi moglo da se napiše i ovako u jednoj liniji:
Code: if (empty($_GET['topic']) { $topic = "-1"; } else { $topic = $_GET['topic']; } Postoji li način da koristeći PHP prebacim datum koji je zapisan kao "18.03.2005. 12:15" u format koji se dobije korišćenjem funkcije time()? Ranije sam koristio ovakav način zapisivanja pa sam sada prešao na ovaj drugi a ne znam kako bih prebacio stare datume u novi format (broj sekundi od Unix epohe). Da li je jedino rešenje "digitron u ruke pa računaj"? [ Zoran Rašković @ 18.03.2005. 13:42 ] @
Ako sam dobro shvatio, potrebno je da iskoristiš funkciju strtotime(). Ona pokušava da prebaci bilo koji datum zapis u unix timestamp.
Zato je potrebno da uvek datum i vreme čuvaš kao unix timestamp... npr u mysql-u kao timestamp(14)... Posle toga kad god ti treba određeni format datuma, koristiš funkciju strftime() da oblikuješ zapis vremena onako kako tebi odgovara... a ne da u bazi čuvaš to kako tebi odgovara. [ Goran Rakić @ 18.03.2005. 17:22 ] @
Hajde kada diskutujete o nekom novom pitanju da otvorite i novu temu... Naravno, pod pretpostavkom da takva tema vec ne postoji.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|