Foros del Web » Programando para Internet » PHP »

Redireccionamiento !!!

Estas en el tema de Redireccionamiento !!! en el foro de PHP en Foros del Web. Es posible redireccionar una pagina hacia un servidor interno, y no dejarle luego la tarea al explorador web que encuentre esta nueva direccion (no la ...
  #1 (permalink)  
Antiguo 05/07/2004, 08:36
 
Fecha de Ingreso: julio-2004
Mensajes: 22
Antigüedad: 13 años, 5 meses
Puntos: 0
Redireccionamiento !!!

Es posible redireccionar una pagina hacia un servidor interno, y no dejarle luego la tarea al explorador web que encuentre esta nueva direccion (no la encontrara dado que la nueva pagina se aloja en un ip interno) ???????
  #2 (permalink)  
Antiguo 07/07/2004, 19:07
Avatar de fermar21  
Fecha de Ingreso: marzo-2004
Ubicación: San Nicolas - Bs. As.
Mensajes: 294
Antigüedad: 13 años, 8 meses
Puntos: 0
No estoy seguro si te entendi tu pregunta, pero con iptables (en linux) puedes hacer forwards de paquetes a otro Host.
Pj: Todos los paquetes que lleguen para el puerto 80 (http) a 192.168.1.1(210.152.62.15) seran enviados a 192.168.1.4

No me acuerdo la regla de iptable para esto, pero busca, que seguro que encontraras
__________________
Fernando Marinzulich
Programador Web (PHP/MySQL/Jquery)
  #3 (permalink)  
Antiguo 07/07/2004, 20:17
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 16 años, 4 meses
Puntos: 9
puedes hacerlo mediante header, la verdad no deja historial en el explorador, y solo redirecciona bien, sin tener que usar metatag:
Código PHP:
<? header ("Location; http://www.talpagina.net/"); ?>
Solo ponlo sin ninguna instrucción HTML.
  #4 (permalink)  
Antiguo 08/07/2004, 14:24
 
Fecha de Ingreso: julio-2004
Mensajes: 22
Antigüedad: 13 años, 5 meses
Puntos: 0
Agradezco mucho tu mensaje.
Por que lo que entiendo me decis que todo lo que llega al puerto 80 del ip publico 210.152.62.15, sera redireccionado al puerto 80 del ip interno 192.168.1.4
Ahora, no deseo que el servidor 210.152.62.15 deje de dar servicio web, solo desea que algunas paginas se direccionen a 192.168.1.4 (dos servidores prestando servicio web)
Podria hacerlo por puerto, indicando que todo lo que llega a 210.152.62.15:5000 sea redireccionado a 192.168.1.4, pero ocurre que quien se encuentre accediendo puede poseer un firewall que impida salir por el puerto 5000 y de esta manera no puede llegar hasta 192.168.1.4
Por tal motivo deseaba saber si php, puede hacer un redireccionamiento interno, sin tocar puertos y sin dejar en manos del explorador que llegue hasta 192.168.1.4
  #5 (permalink)  
Antiguo 08/07/2004, 15:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Con PHP puedes "simular" un cliente HTTP común abriendo sockets hacia donde gustes y leyendo lo que estos entreguen.

(fijate los ejemplos de fsckopen() en www.php.net/fsockopen)

A otro nivel .. no sé que cosas hay que ver desde tu enlace externo (210.152.62.15. Supongo que el servidor HTTP en sí corre en una IP de esa intranet: 192.160.1.xxx pero tiene acceso remoto por esa IP externa) al interno (192.168.1.4) .. pero podría incluso hacer una llamada externa de tus páginas en el servidor interno tipo:

Código PHP:
<?
// esto corre desde tu servidor externo ...

// llamada a una página del interno.
include ("http://192.168.1.4/nose.php");
?>
Digamos que así .. PHP estaría haciendo de "proxy" o "tunel" para lo que está en ese otro servidor .. Pero ahí llega el tema, este simple método depende de configuración del servidor (PHP y sus "wrappers" remotos activados) y para una sóla llamada.

Un saludo,

Última edición por Cluster; 08/07/2004 a las 15:14
  #6 (permalink)  
Antiguo 12/07/2004, 19:02
 
Fecha de Ingreso: julio-2004
Mensajes: 22
Antigüedad: 13 años, 5 meses
Puntos: 0
Cita:
Iniciado por Cluster
Con PHP puedes "simular" un cliente HTTP común abriendo sockets hacia donde gustes y leyendo lo que estos entreguen.

(fijate los ejemplos de fsckopen() en www.php.net/fsockopen)

A otro nivel .. no sé que cosas hay que ver desde tu enlace externo (210.152.62.15. Supongo que el servidor HTTP en sí corre en una IP de esa intranet: 192.160.1.xxx pero tiene acceso remoto por esa IP externa) al interno (192.168.1.4) .. pero podría incluso hacer una llamada externa de tus páginas en el servidor interno tipo:

Código PHP:
<?
// esto corre desde tu servidor externo ...

// llamada a una página del interno.
include ("http://192.168.1.4/nose.php");
?>
Digamos que así .. PHP estaría haciendo de "proxy" o "tunel" para lo que está en ese otro servidor .. Pero ahí llega el tema, este simple método depende de configuración del servidor (PHP y sus "wrappers" remotos activados) y para una sóla llamada.

Un saludo,
MUCHAS GRACIAS CLUSTER POR TU REPUESTA !!!!
No habia considerado la opcion de include ya que consideraba que include solo insertaba codigo al script y nunca pense que podria ejecutar codigo de otro servidor.
Te cuento el por que de esta historia.
Trabajo en php que accesa a una base de datos mysql en un entorno de linux.
Al servidor web que tenemos instalado no puedo instalarles librerias nuevas. Solo tengo acceso a los scripts. Y tenia necesidad de usar funciones de la librerias GD.
Entonces instale otro servidor interno con todas las funcionalidades que necesitaba y desde el servidor web pretendia acceder a este servidor para ejecutar las funciones de las librerias GD.
Con el dato que me pasaste (include), creo que tengo el 70% del camino recorrido ya que comprobe que efectivamente los script que utilizan la sentencia include del servidor web pueden ejecutar paginas alojadas en el otro servidor como propias.
El inconveniente que tengo ahora es que el codigo php para mostrar una imagen necesita ejecutar <img src="imagen.php"> donde imagen.php tendria que ser el programa alojado en el segundo servidor que mostraria la imagen.
Veo un poco dificil colocar la sentencia include en este codigo, pero bueno tendre que ver otra cosa. Estaba pensando en iframe, aunque escuche que posee algunos agujeros de seguridad y ademas es solo compatible con internet explorer.

Clauster, estoy en deuda con vos, muchas gracias por todo y a tus ordenes
  #7 (permalink)  
Antiguo 12/07/2004, 19:53
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si usas en tu servidor 2 algún script que genera imagenes vía GD .. este ya usa sus cabeceras HTTP própias para indicar al "navegador" (cliente) que tales datos son una imagen (cabecera MIME le indicará que tipo es).

Si quieres "ejecutar" o "llamar" ese código desde otro servidor .. la parte que corresponde a la imagen siempre podrás hacerlo tipo:

<img src="http://servidor2/imagen.php">

Y por la misma filosofía .. te podrías "comunicar" on tu script imagen.php del servidor2 tan sólo pasando como parámetros variables que vas a generar en el script que genere ese HTML de imagen (con la llamada al imagen.php de servidor2.php) tipo:

script.php (servidor1)
Código PHP:
<?
$variable_servidor1
="bla";
?>
<img src="http://servidor2/imagen.php?variable=<? echo $variable_servidor1 ?>">
Con esto ya tienes cerrado el "ciclo" de E/S para tu script del servidor auxiliar "2".

Un saludo,

Última edición por Cluster; 12/07/2004 a las 19:54
  #8 (permalink)  
Antiguo 12/07/2004, 20:05
 
Fecha de Ingreso: julio-2004
Mensajes: 22
Antigüedad: 13 años, 5 meses
Puntos: 0
Cluster:
Lo que me dices fue lo primero que intente implementar.
Pero ocurre que cuando el navegador del cliente se encuentra con:

<img src="http://servidor2/imagen.php?variable=<? echo $variable_servidor1 ?>">

intenta buscar a servidor2 en la red publica, y realmente servidor 2 no existe en la red publica sino en la red privada. Entonces no encuentra nada.
  #9 (permalink)  
Antiguo 12/07/2004, 20:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ok .. no conozco la configuración de tu red (servidores DNS o configuraciones de "host" de los PC cliente ni de los navegadores) .. pero podrías revisar ese tema.

Por ejemplo (sin uso de servidor DNS) con una configuración del archivo "host.sam" (renombrado a host) de los PC cliente y el navegador ajustado a (en IE sería:) "No usar proxy para direcciones locales" (en el apartado de "conexiones") tendría que funcionarte). (En la Intranet de mi trabajo funcionamos así, la intranet corre bajo una IP local y el acceso a páginas de internet pasan por un proxy .. Para que el proxy no me intente "interpretar" las direcciones locales (http://pc_servidor_intranet) tengo que activar dicha opción en los clientes navegadores).

Confirma todo esto en el foro de "Seguridad y redes" .. si planteas tu situación seguro que te darán alguna mejor alternativa.

Un saludo,
  #10 (permalink)  
Antiguo 12/07/2004, 21:11
 
Fecha de Ingreso: julio-2004
Mensajes: 22
Antigüedad: 13 años, 5 meses
Puntos: 0
Si, si, en la intranet funciona ya que logra encontrar a servidor1, servidor2 y todos los servidores que puedan encontrarse en la intranet.
El inconveniente ocurre con los clientes fuera de la intranet, los que se encuentran en la web.
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 05:27.