[ iizuzetan @ 07.01.2009. 18:46 ] @
Ljudi naso sam neku kompletnu funkciju za generisanje IP adrese posetilaca, medjutim nikako ne mogu da provalim zasto je toliko komplikovana. Pre nego sto sam je video ja sam mislio da je za to dovoljno samo na primer $ip=$_SERVER['REMOTE_ADDR']. O cemu se ovde radi, sta je cilj ove funkcije?

Code:

//Get User IP
function get_ip(){
    $ipParts = explode(".", $_SERVER['REMOTE_ADDR']);
    if ($ipParts[0] == "165" && $ipParts[1] == "21") {    
        if (getenv("HTTP_CLIENT_IP")) {
            $ip = getenv("HTTP_CLIENT_IP");
        } elseif (getenv("HTTP_X_FORWARDED_FOR")) {
            $ip = getenv("HTTP_X_FORWARDED_FOR");
        } elseif (getenv("REMOTE_ADDR")) {
            $ip = getenv("REMOTE_ADDR");
        }
    } else {
       return $_SERVER['REMOTE_ADDR'];
       }
       return $ip;
}
[ Nemanja Avramović @ 07.01.2009. 19:08 ] @
Kol'ko vidim ovako iz koda ova funkcija pokušava da pročita IP adresu i korisnika koji su iza proxy-ja. Mada, ne znam odakle autoru funkcije ideja da proxy mora da ima ip u obliku 165.21.x.y - možda je nešto interno
[ iizuzetan @ 07.01.2009. 19:31 ] @
Dobro do tog dela gde je izdvojio prvi deo IP adrese 165.21 je i meni jasno ali ne znam sta dalje proverava. Mislim da odgovor lezi ako protumaci neko sta znace iskazi HTTP_CLIENT_IP, HTTP_X_FORWARDED_FOR. Inace nije to nista interno jer je to deo jedne kompletne skripte za registraciju sa interneta, znaci za svaki potencijalni sajt.
[ stsung @ 07.01.2009. 21:28 ] @
Pozd.

Ako ti nije jasno zashto obraca posebnu pazhnju na adrese koje pochinju sa 165.21 (shto je inache opseg za Singapur), onda je mozhda taj deo nepotreban ili je zalutao od ko zna odakle. Iz nekog razloga on adrese 165.21 dodatno proverava da li imaju setovan neki od HTTP_CLIENT_IP, HTTP_X_FORWARDED_FOR headera, shto su hederi koji obichno setuju proxy serveri i u tom sluchaju vraca njihovu vrednost. Tu treba napomenuti da vrednost tih hedera, ako postoje, uopshte ne mora da bude IP adresa, vec u zavisnosti od proxy servera mozhe da bude neki proizvoljan string.

Svako dobro.
[ Nikola Poša @ 07.01.2009. 22:10 ] @
Ma batali ti tu funkciju i koristi jednostavno $_SERVER['REMOTE_ADDR']... :D
[ iizuzetan @ 08.01.2009. 01:11 ] @
Shvatio sam, funkcija je da bi se kao otkrio proxy, ali mislim da takve skripte nemaju bas efekta. To znam iz svog iskustva jer koristim proxy kad zelim da udjem na sajtove i chatove koji me banuju kad reklamiram sajt. Kad ulazim sa proxy adrese otkriju po nekad, ali promenim dve tri proxy adrese i opet udjem. Inace kad bi uspesno postojala formula za otkrivanje proxy adresa onda proxy nebi ni postojao. Na kraju krajeva neka ljudi ulaze na moj sajt pa makar i sa proxyjem samo neka ulaze sto vise ljudi. A sto se tice banovanja mislim da uvek postoji nacin da covek koji je banovan opet da se registruje. Na primer napravi novu mejl adresu i udje preko proxy adrese.