DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   PHP (http://www.devprotalk.com/forumdisplay.php?f=9)
-   -   $_SERVER['REMOTE_ADDR'] prazan ? (http://www.devprotalk.com/showthread.php?t=8153)

Ivan 30. 11. 2009. 21:40

$_SERVER['REMOTE_ADDR'] prazan ?
 
Da li vam se nekada desilo da $_SERVER['REMOTE_ADDR'] ne vrati IP klijenta ?

Trazio sam slicne diskusije ali nigde nisam nasao konkretno objasnjenje kako i zasto dolazi do ovakvog ponasanja ...
Ovo se desilo na jednom projektu koji radi na istoj platformi gde radi jos 200 drugih web sajtova (bez problema). Tj desilo se samo jednom, prilikom zapisa odredjenih varijabli koje prosledjuje korisnik POST metodom a $_SERVER varijable se serijalizuju i upisuju na isti nacin.

Nenad Vasić 30. 11. 2009. 21:55

Da li skriptu pokrećeš preko CLI-a?

robi-bobi 30. 11. 2009. 22:28

^ osim ovoga, jedino drugo objashnjenje kojeg se trenutno secam je 'prepravljeni' tcp paket (ne znam kako je na srpskom :) )

Ivan 30. 11. 2009. 23:51

Skripta se pokrece preko weba, klasicna forma za komentare. Korisnik je dosao sa SBB mreze ...

ivanhoe 01. 12. 2009. 09:04

meni se jedanput apache (ili mozda samo mod_php) zaglupeo i nije setovao $_SERVER uopste, posle restarta proradilo, ali nisam do sad video da samo jednom coveku ne prikaze IP, a ostalima radi..

Ivan 01. 12. 2009. 10:13

Da, to je cudno ... desilo se samo jednom ... mislim da je posle toga sa iste adrese sve radilo ok.

LiquidBrain 01. 12. 2009. 10:31

Ne znash IP a znash da je doso sa SBB-a? WTF?

Ivan 01. 12. 2009. 12:54

Nisam rekao da ne znam IP vec da ga nije bilo u $_SERVER['REMOTE_ADDR'].

bojand 03. 03. 2010. 07:20

Kod mene na Veratu za sve upite $_SERVER['REMOTE_ADDR']. mi daje 127,0,0,1. WTF?

ivanhoe 03. 03. 2010. 11:01

koriste reverzni proxy koji prosledjuje upit ka serveru, pa ti dobijes njegov IP, a ne korisnikov..

bojand 05. 03. 2010. 22:49

PHP kôd:

$ip $_SERVER['HTTP_X_REAL_IP']; 

Ali mi zato sa ovim daje ispravan IP.

Ivan 05. 03. 2010. 23:08

Ovde sam odavno pisao o detektovanju proxy-a, a napisao sam i klasu: http://security-net.biz/files/proxyC....class.php.txt

Ima mesta za unapredjivanje ali u svakom slucaju mozda nekome bude korisna ...

mangia 07. 03. 2010. 02:27

PHP kôd:

if (getenv(HTTP_X_FORWARDED_FOR)) { 
 
$ipaddress getenv(HTTP_X_FORWARDED_FOR);
} else {
 
$ipaddress getenv(REMOTE_ADDR); } 


bluesman 07. 03. 2010. 11:53

Ako nekome treba, evo šta ja koristim, nisam primetio problem do sada:

PHP kôd:

function getRealIP ()
{
    
// get real IP even if proxy is used
    
if (!empty($_SERVER['HTTP_CLIENT_IP']) && strcasecmp($_SERVER['HTTP_CLIENT_IP'], 'unknown'))
    {
        return 
trim($_SERVER['HTTP_CLIENT_IP']);
    }
    elseif (!empty(
$_SERVER['HTTP_X_FORWARDED_FOR']) && strcasecmp($_SERVER['HTTP_X_FORWARDED_FOR'], 'unknown'))
    {
        return 
trim($_SERVER['HTTP_X_FORWARDED_FOR']);
    }
    elseif (!empty(
$_SERVER['HTTP_X_FORWARDED']) && strcasecmp($_SERVER['HTTP_X_FORWARDED'], 'unknown'))
    {
        return 
trim($_SERVER['HTTP_X_FORWARDED']);
    }
    elseif (!empty(
$_SERVER['HTTP_FORWARDED']) && strcasecmp($_SERVER['HTTP_FORWARDED'], 'unknown'))
    {
        return 
trim($_SERVER['HTTP_FORWARDED']);
    }
    return 
trim($_SERVER['REMOTE_ADDR']);



MaxMagnus 15. 03. 2010. 11:05

Citat:

Originalno napisao mangia (Napišite 81216)
PHP kôd:

if (getenv(HTTP_X_FORWARDED_FOR)) { 
 
$ipaddress getenv(HTTP_X_FORWARDED_FOR);
} else {
 
$ipaddress getenv(REMOTE_ADDR); } 


kod mog šefa sa za ovako nešto kleči na kukuruzima :D

$ipaddress = getenv(HTTP_X_FORWARDED_FOR) ? getenv(HTTP_X_FORWARDED_FOR) : getenv(REMOTE_ADDR);

ps: ovo je samo šala, unapred se izvinjavam ako se neko naljuti :)

srdjevic 15. 03. 2010. 14:56

Citat:

Originalno napisao MaxMagnus (Napišite 81605)
kod mog šefa sa za ovako nešto kleči na kukuruzima :D

Zato što stringovi nisu quote-ovani, ili šta? :1074:

mangia 15. 03. 2010. 15:30

^^^ ne nego zato što je pisan "dugi" oblik if petlje...

sve sa zagradama....

a tu i nema nešto baš stringova za quote-vanje... :)

jablan 15. 03. 2010. 16:30

Off Topic: 1...2...3...4...5...6...7...8...9...;)

MaxMagnus 15. 03. 2010. 17:11

ja sam lepo napisao da je u pitanju šala, pa evo i da ponovim... Šalio sam se :)

miks 15. 03. 2010. 17:47

HTTP_X_FORWARDED_FOR moze sadrzati vise ip adresa.

bluesman 15. 03. 2010. 17:58

Može :)

srdjevic 15. 03. 2010. 18:45

Citat:

Originalno napisao mangia (Napišite 81618)
a tu i nema nešto baš stringova za quote-vanje... :)

Pa da, nema stringova... Imate konstante tamo i jedan i drugi... :1064:

Citat:

Originalno napisao jablan (Napišite 81623)
Off Topic: 1...2...3...4...5...6...7...8...9...;)

:1042:

Citat:

Originalno napisao miks (Napišite 81628)
HTTP_X_FORWARDED_FOR moze sadrzati vise ip adresa.

Bluesmanu tamo fali (da imamo potpuno):
Kôd:

$ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
$ip = trim($ips[0]);

Citat:

Originalno napisao bluesman (Napišite 81632)
Može :)

Jel' samo ovaj X header može da sadrži više adresa, ili ima još koji? :1007:

miks 16. 03. 2010. 19:23

Za ostale (header-e) nisam siguran, ili barem nisam nasao nikakvu dokumentaciju o tome.

REMOTE_ADDR je jedina realna ip adresa, barem koliko sam ja saznao, jer pretstavlja adresu host-a od koga je dosao zahtev (izuzimajuci slucaj u ovom postu), bilo da je to klijent ili proksi.

Sve ostale adrese (kao i druge vrednosti) koje se dobijaju iz header-a se lako mogu promeniti, tako da ih treba uzimati sa rezervom.


Vreme je GMT +2. Trenutno vreme je 15:43.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.