webForumDet fria alternativet

$http_server_vars["http_x_forwarded_for"];

16 svar · 401 visningar · startad av Alpha II

Alpha IIMedlem sedan maj 20002 579 inlägg
#1

alldeles nyligen fungerade det att skriva $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]; för att få ip nummret. Nu får jag varningen

Warning: Undefined index: HTTP_X_FORWARDED_FOR

SPiNMedlem sedan mars 20005 832 inlägg
#2

Funkar $HTTP_X_FORWARDED_FOR? Funkar $REMOTE_ADDR?

Kanske du kör dokumentet på två olika servers, kan ha något med serverinställningar att göra.

Alpha IIMedlem sedan maj 20002 579 inlägg
#3

skapade en fil med det här innehållet:

<?

echo $HTTP_X_FORWARDED_FOR."<br>";
echo $REMOTE_ADDR."<br>";
echo $http_server_vars["http_x_forwarded_for"]; 

?>

Och resultatet:

Warning: Undefined variable: HTTP_X_FORWARDED_FOR in c:\documents and settings\administratör\mina dokument\webb\räknare\test.php on line 3

127.0.0.1

Warning: Undefined variable: http_server_vars in c:\documents and settings\administratör\mina dokument\webb\räknare\test.php on line 5

Inget fungerar alltså :(

SPiNMedlem sedan mars 20005 832 inlägg
#4

Lös det så här:

<?php
function getIP () {
     if ( isset ( $HTTP_X_FORWARDED_FOR ) )
          return $HTTP_X_FORWARDED_FOR;
     else
          return $REMOTE_ADDR;
}
...
echo "Ditt IP är: " . getIP ();
?>

Red.}
Eller prova med:

getenv ( $HTTP_X_FORWARDED_FOR );
nicclasMedlem sedan feb. 20001 061 inlägg
#5

Kör:

<?
phpinfo();
?>

för att se vad som är fördefinierat när dina script anropas.

/nicclas - https://www.nyhetsrubriker.com

Alpha IIMedlem sedan maj 20002 579 inlägg
#6

och detta blir resultatet.... :l


Warning: Undefined variable: HTTP_X_FORWARDED_FOR in c:\documents and settings\administratör\mina dokument\webb\räknare\test.php on line 4

Warning: Undefined variable: REMOTE_ADDR in c:\documents and settings\administratör\mina dokument\webb\räknare\test.php on line 7
Ditt IP är:
SPiNMedlem sedan mars 20005 832 inlägg
#7

Redigerade lite i mitt inlägg ovan, kolla igenom det igen. :)

Kan ju vara nåt skumt som hänt med PHP, testa att starta om servern.

Alpha IIMedlem sedan maj 20002 579 inlägg
#8

har startat om: fungerar fortfarande inte

har även skickat dig ett pm med en url till min phpinfo() sida... fattade inte vad jag skulle kolla efter :l

MatteMedlem sedan aug. 20002 970 inlägg
#9

Du kan ju även prova $HTTP_SERVER_VARS['REMOTE_ADDR'].

ip-nummer lokalt är ju 127.0.0.1 så med de exempel du visat så fungerar $REMOTE_ADDR om det inte ligger i en function.

Alpha IIMedlem sedan maj 20002 579 inlägg
#10

Men jag var ju uppkopplad när jag testade och jag hade inte ip nummret 127.0.0.1 :l

SPiNMedlem sedan mars 20005 832 inlägg
#11

$REMOTE_ADDR är kopplat till localhost, när du testkör. Låter du andra användare komma åt dina dokument funkar det fin-fint. :)

Alpha IIMedlem sedan maj 20002 579 inlägg
#12

Men innan jag helt plösligt fick fel med ip nummrerna såg jag mitt eller hmm.. ett "riktigt" ip nummer när jag testade med det... :x

Alpha IIMedlem sedan maj 20002 579 inlägg
#13

ojojoj

Nu kom jag på vad jag gjorde som jag inte gjorde förrut... förrut skrev jag ip och då fungerade det. Nu när jag skrev localhost fungerade det inte :)

Men hur ska jag göra? Jag vill ju att jag ska se ip nummret även när jag skriver localhost, spelar ingen roll om det är 127.0.0.1 men jag vill inte få felmeddelande. Och jag vill at den ska visa rätt ip för bbesökarna.. det gör den inte med $REMOTE_ADDR :l

MatteMedlem sedan aug. 20002 970 inlägg
#14

Gick det inte med $HTTP_SERVER_VARS['REMOTE_ADDR'] ?

Alpha IIMedlem sedan maj 20002 579 inlägg
#15

Nu är jag ännu mer förvirrad!

När jag testar sidan genom att skriva mitt ip nummer så fungerar det. Men om någon annan gör det fungerar det inte. Är det nått dumt fel i apache? Har aldrig kört det förut men jag ville testa :)

ThACRoWMedlem sedan dec. 2001314 inlägg
#16

vad e det för skillnad på $HTTP_X_FORWARDED_FOR och $REMOTE_ADDR ?

Alpha IIMedlem sedan maj 20002 579 inlägg
#17

Använder det hära nu.. skiter i om det visar rätt ip nummer ger iaf inte fel :)

 if (getenv('HTTP_X_FORWARDED_FOR')) { 
      $ip   = getenv('HTTP_X_FORWARD_FOR'); 

    } else { 
      $ip   = getenv('REMOTE_ADDR'); 

   }
Genererad på 365 ms · cache AV · v20260730165559-full.f96bc7eb