REMOTE_ADDR -> HTTP_X_FORWARDED_FOR

Pentru întrebări legate de facilităţile forumului phpBB 2.0.x, acest loc este cel mai potrivit.
Închis
AgLiAn
Utilizator înregistrat
Mesaje: 104
Membru din: 26-Sep-2003, 19:34:20
Ext: Nu
Server: Windows
Nivel phpBB: Mediu
Nivel php: Mediu
Localitate: WestSide Iasi

REMOTE_ADDR -> HTTP_X_FORWARDED_FOR

Mesaj de AgLiAn »

pe phpBB pentru citirea IP-ului se foloseste REMOTE_ADDR iar eu vreau sa il inlocuiesc cu HTTP_X_FORWARDED_FOR . din ce fisier fac asta?
AgLiAn
Utilizator înregistrat
Mesaje: 104
Membru din: 26-Sep-2003, 19:34:20
Ext: Nu
Server: Windows
Nivel phpBB: Mediu
Nivel php: Mediu
Localitate: WestSide Iasi

Mesaj de AgLiAn »

Grea intrebare? :cry: Sau nu m`am facut inteles... ? :roll:
Avatar utilizator
BuGsY
Fost coleg
Mesaje: 1193
Membru din: 19-Iun-2003, 15:24:49
Ext: Nu
Server: Windows
Nivel phpBB: Mediu
Nivel php: Mediu
Localitate: Constanţa
Contact:

Mesaj de BuGsY »

Eu nu înţeleg de ce vrei tu să faci treaba asta!? HTTP_X_FORWARDED_FOR cauzează probleme în ceea ce priveşte IP-ul rutabil.
AgLiAn
Utilizator înregistrat
Mesaje: 104
Membru din: 26-Sep-2003, 19:34:20
Ext: Nu
Server: Windows
Nivel phpBB: Mediu
Nivel php: Mediu
Localitate: WestSide Iasi

Mesaj de AgLiAn »

forumul este pus pe internet, dar e doar pentru o retea locala... cu peste 500 de utilizatori. iar toti au acelasi IP de internet. de acea as vrea sa modific, in loc de IP-ul de internet sa apara IP-ul PC-ului (HTTP_X_FORWARDED_FOR) ... pentru a putea monitoriza si pentru a putea bana cand este cazul. Daca las sa apara IP-ul de internet... n-am cum sa banez pe cineva... pentru ca daca as bana IP-ul nu mai poate intra toata reteaua pe forum, iar daca banes userul... dupa cum bine se stie ca e romanu`... isi face alt user cu care incepe iar sa faca "gura mare" pe forum.

Ma ajuta cineva?
Avatar utilizator
BuGsY
Fost coleg
Mesaje: 1193
Membru din: 19-Iun-2003, 15:24:49
Ext: Nu
Server: Windows
Nivel phpBB: Mediu
Nivel php: Mediu
Localitate: Constanţa
Contact:

Mesaj de BuGsY »

Deschide fişierul common.php din directorul rădăcină al forumului într-un editor text, după care caută linia (aproximativ linia 202):

Cod: Selectaţi tot

$client_ip = ( !empty($HTTP_SERVER_VARS['REMOTE_ADDR']) ) ? $HTTP_SERVER_VARS['REMOTE_ADDR'] : ( ( !empty($HTTP_ENV_VARS['REMOTE_ADDR']) ) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : $REMOTE_ADDR );
Înlocuieşte această linie cu:

Cod: Selectaţi tot

if( getenv('HTTP_X_FORWARDED_FOR') != '' )
{
   $client_ip = ( !empty($HTTP_SERVER_VARS['REMOTE_ADDR']) ) ? $HTTP_SERVER_VARS['REMOTE_ADDR'] : ( ( !empty($HTTP_ENV_VARS['REMOTE_ADDR']) ) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : $REMOTE_ADDR );

   $entries = explode(',', getenv('HTTP_X_FORWARDED_FOR'));
   reset($entries);
   while (list(, $entry) = each($entries))
   {
      $entry = trim($entry);
      if ( preg_match("/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/", $entry, $ip_list) )
      {
         $private_ip = array('/^0\./', '/^127\.0\.0\.1/', '/^192\.168\..*/', '/^172\.((1[6-9])|(2[0-9])|(3[0-1]))\..*/', '/^10\..*/', '/^224\..*/', '/^240\..*/');
         $found_ip = preg_replace($private_ip, $client_ip, $ip_list[1]);

         if ($client_ip != $found_ip)
         {
            $client_ip = $found_ip;
            break;
         }
      }
   }
}
else
{
   $client_ip = ( !empty($HTTP_SERVER_VARS['REMOTE_ADDR']) ) ? $HTTP_SERVER_VARS['REMOTE_ADDR'] : ( ( !empty($HTTP_ENV_VARS['REMOTE_ADDR']) ) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : $REMOTE_ADDR );
}
Să îmi spui dacă works ;)
AgLiAn
Utilizator înregistrat
Mesaje: 104
Membru din: 26-Sep-2003, 19:34:20
Ext: Nu
Server: Windows
Nivel phpBB: Mediu
Nivel php: Mediu
Localitate: WestSide Iasi

Mesaj de AgLiAn »

de ce nevoie de atata cod? Am inlocuit doar astfel... si vad ca merge ok.

Cod: Selectaţi tot

$client_ip = ( !empty($HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR']) ) ? $HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR'] : ( ( !empty($HTTP_ENV_VARS['HTTP_X_FORWARDED_FOR']) ) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : $REMOTE_ADDR );
Merci de ajutor
Închis

Înapoi la “2.0.x Cum pot să...?”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Bing [Bot] și 1 vizitator