Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] No consigo mostrar mi IP

Estas en el tema de No consigo mostrar mi IP en el foro de PHP en Foros del Web. Hola buenas, estoy trabajando sobre WAMP, necesito mostrar mi IP y en otro script necesito saber la del cliente que entra e mi página pero ...
  #1 (permalink)  
Antiguo 15/12/2013, 08:16
 
Fecha de Ingreso: noviembre-2012
Mensajes: 65
Antigüedad: 11 años, 5 meses
Puntos: 2
No consigo mostrar mi IP

Hola buenas, estoy trabajando sobre WAMP, necesito mostrar mi IP y en otro script necesito saber la del cliente que entra e mi página pero tengo un problema, al ejecutar esto:

Código PHP:
 IP del Server: <b><?php  echo ($_SERVER['SERVER_ADDR']);?></b>
 | Nombre del Server: <b><?php  echo ($_SERVER['SERVER_NAME']);?></b>
 | Ubicacion del sistema: <b><?php  echo ($_SERVER['DOCUMENT_ROOT']);?></b>
 | Tu IP: <b><?php  echo ($_SERVER['REMOTE_ADDR']);?></b>
Lo que muestra mi navegador es:

IP del Server: ::1 | Nombre del Server: localhost | Ubicacion del sistema: C:/wamp/www | Tu IP: ::1

¿Cómo cambio el ::1 por mi IP?
Gracias de antemano
  #2 (permalink)  
Antiguo 15/12/2013, 08:41
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: No consigo mostrar mi IP



Si trabajas en tu PC, la IP será siempre "localhost", o una IP dentro del rango 127.0.0.0 a 127.255.255.255. Esso es inevitabe, porque por definición ese rango es el de las IP locales, y además si el servidor está en la propia PC donde corre la aplicación, será el localhost.
Sólo cuando el servidor está en una red privada los rangos cambian, o bien si el servidor es externo. Pero incluso en ese caso es posible que la IP del cliente no represente la IP de la propia PC, porque lo que se expone es en realidad la IP del ISP, no la del usuario.
Eso lo podrás entender cuando estudies en detalle esa capa del sistema, pero creo que aún no has profundizado en el asunto.
Posiblemente estés tratando de crear un sistema de validación de usuarios por IP, por lo que desde ya te digo que es de uso relativo. Es decir, no ex totalmente viable por cuanto más de un usuario del mismo ISP puede verse con la misma IP ya que, como dije, la IP publica es la del ISP.

PD: La MAC adress tampoco es una buena solución.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 15/12/2013, 09:20
 
Fecha de Ingreso: noviembre-2012
Mensajes: 65
Antigüedad: 11 años, 5 meses
Puntos: 2
Respuesta: No consigo mostrar mi IP

Cita:
Iniciado por gnzsoloyo Ver Mensaje


Si trabajas en tu PC, la IP será siempre "localhost", o una IP dentro del rango 127.0.0.0 a 127.255.255.255. Esso es inevitabe, porque por definición ese rango es el de las IP locales, y además si el servidor está en la propia PC donde corre la aplicación, será el localhost.
Sólo cuando el servidor está en una red privada los rangos cambian, o bien si el servidor es externo. Pero incluso en ese caso es posible que la IP del cliente no represente la IP de la propia PC, porque lo que se expone es en realidad la IP del ISP, no la del usuario.
Eso lo podrás entender cuando estudies en detalle esa capa del sistema, pero creo que aún no has profundizado en el asunto.
Posiblemente estés tratando de crear un sistema de validación de usuarios por IP, por lo que desde ya te digo que es de uso relativo. Es decir, no ex totalmente viable por cuanto más de un usuario del mismo ISP puede verse con la misma IP ya que, como dije, la IP publica es la del ISP.

PD: La MAC adress tampoco es una buena solución.
Entonces como hago para:

mostrar la IP de mi servidor.

conocer la IP de otro equipo que accede a mi script dentro de la red local.

Para el primer caso esque desde dentro de mi página debo mostrar la IP que tiene el servidor para que los usuarios puedan acceder a el.

el segundo caso es para restringir el acceso a determinadas IP. gracias
  #4 (permalink)  
Antiguo 15/12/2013, 09:29
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: No consigo mostrar mi IP

accede por la url a -> h t t p://127.0.0.1/

La ip que debes de dar es la ip local del equipo por ejemplo 192.168.1.12 algo parecido a eso , debes de abrir el puerto 80 del equipo host

en apache httpd.conf puedes configurar la ip y esas cosas

Última edición por webankenovi; 15/12/2013 a las 09:36
  #5 (permalink)  
Antiguo 15/12/2013, 09:55
 
Fecha de Ingreso: noviembre-2012
Mensajes: 65
Antigüedad: 11 años, 5 meses
Puntos: 2
Respuesta: No consigo mostrar mi IP

Cita:
Iniciado por webankenovi Ver Mensaje
accede por la url a -> h t t p://127.0.0.1/

La ip que debes de dar es la ip local del equipo por ejemplo 192.168.1.12 algo parecido a eso , debes de abrir el puerto 80 del equipo host

en apache httpd.conf puedes configurar la ip y esas cosas

Si pero lo que quiero es controlar el acceso a la web desde PHP no desde apache, es decir, en un if, si la IP es 192.168.1.2 (por ejemplo), ejecutar la página.

El tema de saber mi propia IP desde el servidor es porque en una página debo mostrar mi IP para que quien acceda sepa cual es la IP der servidor
  #6 (permalink)  
Antiguo 15/12/2013, 10:02
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: No consigo mostrar mi IP

Cita:
Iniciado por kasmo Ver Mensaje
Entonces como hago para:

mostrar la IP de mi servidor.

conocer la IP de otro equipo que accede a mi script dentro de la red local.

Para el primer caso esque desde dentro de mi página debo mostrar la IP que tiene el servidor para que los usuarios puedan acceder a el.

el segundo caso es para restringir el acceso a determinadas IP. gracias
Los métodos que usas son básicamente correctos, pero no tendrás resultados reales hasta que no migres la aplicación al host, ya que en tanto lo hagas en tu PC local, todas las conexiones serán siempre "localhost".

De todos modos, recuerda lo que te dije: No tendrás una IP real del equipo del usuario que se conecta, sino del ISP a través del cual se conecta, que no es lo mismo. Es normal, e inevitable.


@webankenovi:
Los rangos de IP 127.x.x.x son los de la propia PC, por lo que lo que propones es inútil, ya lo expliqué. En cuanto a la 192.x.x.x pertenecen al rango de direcciones privadas de una red local, es decir, por ejemplo, si conectas dos PCs por medio de un cable de red común y corriente. Es decir que tampoco sirve.

@kasmo:
Si lo que quieres es permitir o cancelar el acceso de un usuario determinado, sólo podrás hacerlo adecuadamente en base a perfiles (el cómo se usan y definen los perfiles lo debes crear tu), pero no por la IP.
La IP dentro de una red privada puede ser un componente de restricción, pero no el único componente. Normalmente este tipo de acciones se determina por perfiles.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 15/12/2013, 10:16
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: No consigo mostrar mi IP

Cita:
Iniciado por gnzsoloyo

@webankenovi:
En cuanto a la 192.x.x.x pertenecen al rango de direcciones privadas de una red local, es decir, por ejemplo, si conectas dos PCs por medio de un cable de red común y corriente. Es decir que tampoco sirve.
Bueno segun kasmo

Cita:
Iniciado por kasmo;
conocer la IP de otro equipo que accede a mi script dentro de la red local.
estamos habalndo de la red local por lo que dando la ip local del host y entrando desde otro equipo ya sea mediante cable o wiffi conectados a la red podrian tener acceso al host , ahora en el host se mostrarian las ip locales de los equipos y a estan son las que se bloquean o se acceden mediante un script php que es como quieres kasmo .
  #8 (permalink)  
Antiguo 15/12/2013, 10:57
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: No consigo mostrar mi IP

Es el único caso en que funcionará, pero para el caso, no funcioanrá correctamente con la IP del servidor, porque es localhost...

Yo insisto que es mejor manejar los permisos de la aplicación por perfil y no por IP, si además tienes en cuenta que si llegan a usar DHCP la misma se volvería dinámica... con lo que entonces no serviirá de nada.

Antes de ajustar ese script tendrá que hacer pruebas sobre la LAN privada directamente. de lo contrario no podrá verificar si las IP se obtienen bien.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 15/12/2013, 10:59
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: No consigo mostrar mi IP

yo he hecho alguna vez pruebales locales de esa manera en el equipo host abro el puerto 80 y desde el otro equipo e accedido al host introduciendo en la url la ip local del host 192.168.1.12:80

tienes mucha razon , pero tampoco a especificado si es una aplicacion local o no , asi que que nos diga y ya lo vemos veindo que problemas tenga , claro que es mucho mejor por perfiles etc... pero ya depende de el .

Última edición por webankenovi; 15/12/2013 a las 11:09
  #10 (permalink)  
Antiguo 15/12/2013, 12:16
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: No consigo mostrar mi IP

Hola,

Cita:
Iniciado por kasmo Ver Mensaje
¿Cómo cambio el ::1 por mi IP?
Esa es tu IP, técnicamente es IPv6. La dirección 127.0.0.1 alias localhost en IPv6 se denomina ::1. Tu PC está configurada para usar direcciones IPv6, como la solicitud y la respuesta es en la misma PC no se 'rutea' por ninguna otra puerta de enlace, que normalmente todavía usan IPv4 como la Interné. La dirección del servidor y el cliente es la misma en ese caso porque están en la misma PC.

Cita:
Iniciado por gnzsoloyo Ver Mensaje
...
Sólo cuando el servidor está en una red privada los rangos cambian, o bien si el servidor es externo. Pero incluso en ese caso es posible que la IP del cliente no represente la IP de la propia PC, porque lo que se expone es en realidad la IP del ISP, no la del usuario.
Exactamente, en cualquier caso, si un punto de red está detrás de un dispositivo que utilice NAT, como es el caso de una subred (o los ISP para evitar las IP públicas), la IP que expone es la IP traducida y no la IP interna de la subred.

Básicamente pueden haber 100 PC's en una subred y el servidor va a ver que todas las solicitudes vienen de la misma IP como que fuera solamente 1 PC.

Técnicamente no te está certificado que la IP que mira el servidor sea la persona ni la IP que dice ser en cualquier caso. (Inclusive en la misma red Ethernet y en las direcciones reservadas 192.168.x.x, .169.254.x.x, 10.0.x.x., etc)

Saludos,
  #11 (permalink)  
Antiguo 15/12/2013, 17:46
 
Fecha de Ingreso: noviembre-2012
Mensajes: 65
Antigüedad: 11 años, 5 meses
Puntos: 2
Respuesta: No consigo mostrar mi IP

A ver el caso es que toda la red ya tiene IPs fijas mediante DHCP.

Os cuento el caso real a ver si os aclaro un poco. Estoy montando un control de acceso a las clases mediante NFC, en cada puerta de clase a de haber un PC con su respectivo receptor NFC. Este al pasarle la tarjeta detecta que alumno es y lanza una URL (por ejemplo 192.168.1.20?id=xxxxxxxx). Ese xxxxxxxx es el número de matrícula encriptado. Para que un usuario no pueda hacer esto desde casa solo puedo permitir que se acceda a la URL específicamente desde la IP donde esté conectado el receptor NFC.

El tema de conocer la IP de mi servidor también es para generar esa URL, ya que si mi aplicación se usa en otro instituto, con otra IP etc etc... la propia aplicación debe generear el código que ha de llevar la tarjeta de cada usuario. Por ejemplo 192.168.1.50?id=xxxxxx, obviamente si mi app se ejecuta en otro servidor la IP va a cambiar, pero necesito que eso sea transparente al usuario y que no tenga que andar cambiando la IP manualmente, también debo añadir a la bbdd las IPS de los receptores para posteriormente comprobar que se accede desde ellos y no desde cualquier otro PC.

No se si me he explicado bien.. el caso esque necesito tanto la IP der server como saber desde que IP se accede a la aplicación
  #12 (permalink)  
Antiguo 16/12/2013, 12:39
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: No consigo mostrar mi IP

Hola,

Cita:
Iniciado por kasmo Ver Mensaje
... No se si me he explicado bien.. el caso esque necesito tanto la IP der server como saber desde que IP se accede a la aplicación
Cita:
Iniciado por webankenovi Ver Mensaje
... en apache httpd.conf puedes configurar la ip y esas cosas
Para 'bindear' la IP del servidor a una IP especifica tienes que configurar el httpd.conf en la sección Listen. Por defecto responde en cualquier IP que llegue al servidor, allí tienes que configurar la IP que tiene asignado por DHCP el servidor.

#Listen 12.34.56.78:80
Listen 8080

En el caso del cliente no tienes que hacer nada, intenta accesar desde otra PC que no sea la misma 'localhost' y veras la IP del cliente.

Cita:
Iniciado por kasmo Ver Mensaje
... para posteriormente comprobar que se accede desde ellos y no desde cualquier otro PC. ...
Dependiendo de la topología de la red eso no es completamente seguro. Si un usuario malintencionado, con el conocimiento necesario lo intenta, existe la posibilidad que logre presentarse con una IP que no le corresponde. Pero serán casos extremos, supongo.

Saludos,
  #13 (permalink)  
Antiguo 17/12/2013, 07:08
 
Fecha de Ingreso: noviembre-2012
Mensajes: 65
Antigüedad: 11 años, 5 meses
Puntos: 2
Respuesta: No consigo mostrar mi IP

Cita:
Iniciado por HackmanC Ver Mensaje
Hola,





Para 'bindear' la IP del servidor a una IP especifica tienes que configurar el httpd.conf en la sección Listen. Por defecto responde en cualquier IP que llegue al servidor, allí tienes que configurar la IP que tiene asignado por DHCP el servidor.

#Listen 12.34.56.78:80
Listen 8080

En el caso del cliente no tienes que hacer nada, intenta accesar desde otra PC que no sea la misma 'localhost' y veras la IP del cliente.



Dependiendo de la topología de la red eso no es completamente seguro. Si un usuario malintencionado, con el conocimiento necesario lo intenta, existe la posibilidad que logre presentarse con una IP que no le corresponde. Pero serán casos extremos, supongo.

Saludos,
Muchas gracias, al final he conseguido solucionarlo de la siguiente forma:

La función que puse al principio me ha servido para cuando accedo desde un cliente. -el problema es que no sabía como hacer conocer la IP local del servidor asique como la aplicación tiene una tabla en base de datos he añadido el campo IP (obviamente el valor añadido aquí puede variar de la IP real, pero esa es una labor del administrador). de forma que para generar una URL de acceso al servidor
obtengo ese campo de la base de datos y añado la ruta que deseaba. por ejemplo:
192.168.1.20/php/acceso?id=xxxxx

No se si existe agún script para conocer desde PHP la IP del servidor... pero como no lo conozco me he decantado por esta solución
  #14 (permalink)  
Antiguo 18/12/2013, 12:57
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: No consigo mostrar mi IP

tienes que confiurar el archivo httpd.conf de apache busca esta parte

Cita:
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 80
y la modificas asi

Cita:
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
Listen 192.168.1.20:80
pones la ip que tenga el host , ahora accede desde otro equipo y haz una prueba para mostrar la ip del host y veras que se te muestra la misma que pusiste en el archivo ahora para acceder al hpost desde el otro equipo pones en la url la ip del host 192.168.1.20 y tienen que estar abierto el puerto 80 del equipo del host y activado los servicios de apache , si quieres probarlo desde el mismo equipo tienes que configurar otra linea mas en el archivo httpd.conf es esta

Cita:
# Require all granted
# onlineoffline tag - don't remove
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from ::1
Allow from localhost
</Directory>
pues añades la ip del host asi

Cita:
# Require all granted
# onlineoffline tag - don't remove
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from ::1
Allow from localhost
Allow from 192.168.1.20
</Directory>

asi ya tienes acceso si no no te dejara, cualquier problema aqui estamos

Etiquetas: ip
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 23:40.