Foros del Web » Programando para Internet » PHP »

la ip que obtengo con php es 127.0.0.1??

Estas en el tema de la ip que obtengo con php es 127.0.0.1?? en el foro de PHP en Foros del Web. salu2 maestros del web, tengo una duda acerca de obtener la ip mediante este codigo php: Código PHP: <?php  $ip = getenv ( "REMOTE_ADDR" );   ...
  #1 (permalink)  
Antiguo 16/07/2005, 20:12
okram
Invitado
 
Mensajes: n/a
Puntos:
Pregunta la ip que obtengo con php es 127.0.0.1??

salu2 maestros del web, tengo una duda acerca de obtener la ip mediante este codigo php:
Código PHP:
<?php 
$ip
=getenv("REMOTE_ADDR");  
echo 
$ip;
?>
Aun no lo he probado en otras pcs ni subiendolo a internet, estoy trabajando con el apache server. Bueno, ese codigo me lanza esta ip: 127.0.0.1 que hasta donde se es una ip local ... Pero cuando entro a otras pagians en las que se muestra mi ip, todas me muestran una misma ip que no es 127.0.0.1.... alguien me puede explicar un poco este asunto??? hay algun otro codigo para obtener la direccion ip??? cual es la verdadera???

Salu2 y gracias
  #2 (permalink)  
Antiguo 16/07/2005, 20:52
Avatar de cauly  
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires
Mensajes: 726
Antigüedad: 22 años, 2 meses
Puntos: 0
si estás trabajando en forma local siempre te va a salir esa IP, subí el archivo a un servidor y probalo ahí.
  #3 (permalink)  
Antiguo 16/07/2005, 23:11
 
Fecha de Ingreso: septiembre-2003
Ubicación: Sentado frente a un computador
Mensajes: 191
Antigüedad: 20 años, 7 meses
Puntos: 0
a ver tratare de explicarte

quien lo definio, no podria decirtelo, pero existe elconvenio internacional que la ip local "siempre" es 127.0.0.1 y todo su subrango.Esto es lo que te pasa a ti que tienes el servidor apache supongo por defecto y te toma la "localhost", que es el nombre generico de la ip local, una prueba de esto es que en el navegador puedes escribir indistintamente "localhost" u "127.0.0.1" y te aparecera la misma pagina index que tienes tu.

Todos los computadores que estan conectados tienen una ip "real" que es la que aparece cada vez que tu estas entrado a otra pagina. Esta direcccion te la da tu proveedor de internet por lo general, a no ser que tu tengas un router u otro mecanismo "similar" a este. Si quieres saber tu ip "real", coloca ipconfig y te dara los datos de tu pc.

espero habver sido claro para ti, y cualquier cosa consulta
  #4 (permalink)  
Antiguo 17/07/2005, 10:38
okram
Invitado
 
Mensajes: n/a
Puntos:
gracias, probe subiendolo a un servidor y ahora me muestra la verdadera ip.... ahora tengo esta duda....

cual es la diferencia entre poner
$ip=getenv("REMOTE_ADDR");
y poner simplemente
$ip=$REMOTE_ADDR;
??

salu2
  #5 (permalink)  
Antiguo 17/07/2005, 17:06
 
Fecha de Ingreso: julio-2005
Mensajes: 18
Antigüedad: 18 años, 9 meses
Puntos: 0
$ip=$REMOTE_ADDR; Esto lo úncio que hace es pasar el valor que contenga la variable $remote_Addr a $ip, puede tener cualquier cosa.

En cambio la otra llama a la función getenv con el parámetro remote_addr que retorna un valor.

saludos
  #6 (permalink)  
Antiguo 17/07/2005, 20:06
okram
Invitado
 
Mensajes: n/a
Puntos:
bueno mi pregunta mas iba a que cuando pongo:

<?
echo $REMOTE_ADDR;
?>

esto me muestra mi ip, y pasa lo mismo cuando pongo

<?
echo getenv("REMOTE_ADDR");
?>

quiero decir, ambas formas me dan el mismo resultado.... es × simple curiosidad que quiero saber cual es la diferencia entre esas dos...

salu2
  #7 (permalink)  
Antiguo 17/07/2005, 23:30
 
Fecha de Ingreso: febrero-2005
Mensajes: 670
Antigüedad: 19 años, 2 meses
Puntos: 0
getenv es una función de php que se utiliza para acceder a las variables de entorno de php (como REMOTE_ADDR, QUERY_STRING, etc). http://php.net/getenv

No deberías usar simplemente $REMOTE_ADDR, ya que estás asumiendo que register_globals está activado, cosa que no siempre es acertada (http://php.net/register_globals).

La forma segura sería hacerlo desde la superglobal $_SERVER ($_SERVER[REMOTE_ADDR]) que existe desde la versión 4 de php. Antiguamente se podía acceder desde $HTTP_SERVER_VARS por lo que usar getenv era un poco más práctico, desconozco si tiene alguna otra utilidad.

Suerte
Fede
__________________
Federico H. García
Desarrollo Web
www.federicog.com.ar
  #8 (permalink)  
Antiguo 17/07/2005, 23:42
Avatar de gustavoang  
Fecha de Ingreso: julio-2003
Ubicación: Valencia - Venezuela
Mensajes: 253
Antigüedad: 20 años, 9 meses
Puntos: 1
Hola.

Cita:
Iniciado por dark_goldviper
una prueba de esto es que en el navegador puedes escribir indistintamente "localhost" u "127.0.0.1" y te aparecera la misma pagina index que tienes tu.
Sólo quería acotar que también sucede lo mismo si escribes el nombre de tu PC... Si se llama "OKRAM", será lo mismo que escribas http://okram, o http://localhost, o http://127.0.0.1.

Por otro lado, y en relación a lo que dice thunder.scripts, otro motivo sería el de la seguridad... imagínate algún malintencionado que coloque la terminación "?REMOTE_ADDR=xxx.xxx.xxx.xxx" a tu URL, entonces dependiendo de la configuración de php, tu variable $REMOTE_ADDR valdría "xxx.xxx.xxx.xxx".

Saludos.
__________________
Gustavo Narea.
Venezuela.
  #9 (permalink)  
Antiguo 18/07/2005, 00:36
 
Fecha de Ingreso: febrero-2005
Mensajes: 670
Antigüedad: 19 años, 2 meses
Puntos: 0
Claro, siempre es mejor usar las superglobales por eso mismo, lo que no sé cuánta utilidad tiene es getenv.

Suerte
Fede
__________________
Federico H. García
Desarrollo Web
www.federicog.com.ar
  #10 (permalink)  
Antiguo 18/07/2005, 00:42
Avatar de gustavoang  
Fecha de Ingreso: julio-2003
Ubicación: Valencia - Venezuela
Mensajes: 253
Antigüedad: 20 años, 9 meses
Puntos: 1
Cita:
Iniciado por thunder.scripts
lo que no sé cuánta utilidad tiene es getenv.
Hola.

Realmente getenv sólo devuelve el valor de una variable del entorno (como ya todos sabemos). No tiene nada más de especial.

Saludos.
__________________
Gustavo Narea.
Venezuela.
  #11 (permalink)  
Antiguo 18/07/2005, 07:54
okram
Invitado
 
Mensajes: n/a
Puntos:
De acuerdo

gracias a to2, asumo que entonces existe la misma diferencia al querer verificar si una variable esta definida o no.

P e.j. tengo la variable $okram:

Código PHP:
<?php
if(isset($okram)) {
//La variable si esta definida
} elseif(!isset($okram)) {
//no esta
}
?>
Inicialmente intente hacerlo asi, pero no resultaba, siempre tomaba como que la variable no existia. ¿¿¿Hay algun problema en usar simplemente:
Código PHP:
<?php
if($okram) {
//La variable si esta definida
} elseif(!$okram) {
//no esta
}
?>
???

salu2
  #12 (permalink)  
Antiguo 18/07/2005, 08:12
Avatar de gustavoang  
Fecha de Ingreso: julio-2003
Ubicación: Valencia - Venezuela
Mensajes: 253
Antigüedad: 20 años, 9 meses
Puntos: 1
Hola.

Cita:
Iniciado por okram
¿¿¿Hay algun problema en usar simplemente:
Código PHP:
<?php
if($okram) {
//La variable si esta definida
} elseif(!$okram) {
//no esta
}
?>
???
Si, porque de esa manera estas asumiendo que siempre $okram está definida... Y vas a obtener un error si usas una variable no definida.

Por otro lado, pienso que sólo debería usar:

Código PHP:
if(isset($okram)) {
//La variable si esta definida
}else{
//no esta

Saludos.
__________________
Gustavo Narea.
Venezuela.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:12.