enlazar a un puerto local en html [Solucionado]
Hola a todos, estoy montando un servidor casero y no consigo enlazar a un puerto con lenguaje html de manera que enlace correctamente tanto para la red local como para internet.
El servidor es de momento muy simple, La cosa es muy simple, una página web muy simple con un par de enlaces y fotos.
El servidor web es apache2, estoy haciendo pruebas para hacer streaming de la música. Bien, el servicio de streaming lo hago con gnump3d y escucha en el puerto 8888. La pagina web tiene acceso desde la red internta como desde internet, para ello utilizo un dominio no-ip.
en la red interna, accediendo con la ip local del servidor al perto 8888 funciona bien:
http://192.168.4.70:8888desde internet con el dominio no-ip tambien
http://dominio.no-ip:8888bien, la pagina web de apache, tiene un enlace a ese puerto:
<a href="http://192.168.4.70:8888">Musica</a> Y así puesto funciona muy bien desde la red local, pero evidentemente no desde internet.
<a href="http://dominio.no-ip:8888">Musica</a> Así funciona bien desde todas partes, pero claro, desde el cliente de la red local, accede a internet para volver al servidor.
He probado muchas cosas
<a href=":8888">Musica</a>
<a href="/:8888">Musica</a>
<a href="localhost:8888">Musica</a> Y no consigo encontrar la manera de redirigir simplemente al puerto sin tener que poner una dirección completa para que la red interna no necesite salir a internet y la red externa pueda acceder.
Para aquellos que sepáis html os será evidente por qué no funcionan las pruebas de los enlaces, pero es que no he encontrado la manera de hacer lo que quiero y solo me quedaba la opción de experimentar.
Un saludo a todos.
- Inicie sesión o regístrese para enviar comentarios
- 1202 lecturas


Se me ocurre que pudieras establecer una página index o principal para cada tipo de acceso, externo e interno. Y que el enlace a Música sea distinto para cada una de ellas; <a href="http://192.168.4.70:8888">Musica</a> para el acceso interno y <a href="http://dominio.no-ip:8888">Musica</a> para el externo.
Saludos
¿Por qué no dejas los 2 enlaces? Por ejemplo:
<a href="http://192.168.4.70:8888">Escuchar Música (localmente)</a>y
<a href="http://dominio.no-ip:8888">Escuchar Música (desde la Internet)</a>y haces clic en el que corresponda dependiendo de donde estés.
[...] He probado muchas cosas
<a href=":8888">Musica</a><a href="/:8888">Musica</a>
<a href="localhost:8888">Musica</a>
[...]
Ninguna de esas te va a servir porque necesitas especificar el protocolo del enlace, que en este caso es HTTP. La nomenclatura para el anclaje (anchor) es:
<a href="protocolo://servidor:puerto/">texto</a>Por lo tanto es correcto que se quede así:
<a href="http://dominio.no-ip.com:8888">Musica</a>[...] no consigo encontrar la manera de redirigir simplemente al puerto sin tener que poner una dirección completa para que la red interna no necesite salir a internet y la red externa pueda acceder.[...]
Se me ocurre que podrías crear una entrada en tu archivo /etc/hosts , para que cuando desde la LAN hagas clic en tu enlace la conexión no salga a Internet, sino que se redirija al equipo dentro de la misma LAN:
dominio.no-ip.com 192.168.4.70De esa manera, cuando hagas clic en el enlace http://dominio.no-ip.com:8888/ la conexión no saldrá a la Internet sino que la conexión se hará localmente.
Saludos,
Sidd.
EDITO:
es al revés la información en el archivo /etc/hosts . Es que no tengo ni Kubuntu ni Debian a la mano, estoy viendo el archivo de Windows XP y me di cuenta de mi error. Lo correcto sería:
192.168.4.70 dominio.no-ip.compues la opción de añadir el host no se me había ocurrido.
También puedo añadir dos enlaces como habéis sugerido. Y lo de añadir dos pçaginas index no acabo de entenderlo por completo.
Pero... ¿entonces mediante lenguaje html no se puede dirigir a un puerto directamente?
un detalle, cuando pongo este enlace:
<a href=":8888">Musica</a>entro en la pagina:
http://dominio-no-ipsi pincho en el enlace, el navegador me dirige a
http://dominio-no-ip/:8888y claro, no funciona, el link correcto sería:
http://dominio-no-ip:8888Solo le sobra el / por eso pensaba que habría alguna posibilidad.
En fin, gracias de todas formas por el intento.
jajajjaja yo te iba a contestar shaola pero justo me tuve que ir xD
Te iba sugerir que porque no usabas un script en JavaScript o en PHP que mire sobre que IP se esta abriendo la pagina y dependiendo la IP mostrar el correspondiente link xD
jajajjaja yo te iba a contestar shaola pero justo me tuve que ir xD
Te iba sugerir que porque no usabas un script en JavaScript o en PHP que mire sobre que IP se esta abriendo la pagina y dependiendo la IP mostrar el correspondiente link xD
uff, si apenas estoy enpezando con html ya quieres meterme con javascript o php? jajaja. Con el tiempo tux... con el tiempo
Deduzco que no hay forma de hacerlo con html no?
El siguiente código no ¿funciona?:
<a href=":8888/">Musica</a>El siguiente código no ¿funciona?:
<a href=":8888/">Musica</a>no, con eso mi navegador se dirige a
http://dominio.no-ip/:8888cuando para que funcione hay que poner
http://dominio.no-ip:8888es el pequeño detalle de la / la que fastidia todo.
<html><head>
<script type="text/javascript">
var miurl = "";
var urlorigen = document.location+"";
urlorigen = urlorigen.substring(0,19)
if(urlorigen == "http://192.168.4.70")
miurl = '<a href="http://192.168.4.70:8888">Musica</a>';
else
miurl = '<a href="http://dominio.no-ip:8888">Musica</a>';
</script>
</head>
<body>
<script>document.write(miurl)</script>
</body>
</html>
interesante tux, pero eso no es html no? es javascript? de momento ya lo he probado desde internet, y funciona, pero no he podido probarlo desde la red local. ¿el if url tiene que ser la ip del servidor? o la ip del cliente de la red local? se puede poner un rango de ips? como por ejemplo 192.168.4.0 para que reconozca todas?
Es JavaScript xD
Si se puede dejar por ejemplo para que la condicion compares hasta 192.168.4
Habria que cambiar
urlorigen = urlorigen.substring(0,19)
if(urlorigen == "http://192.168.4.70")
Por
urlorigen = urlorigen.substring(0,16)
if(urlorigen == "http://192.168.4")
Con eso te servira localmente y desde internet, si es local carga localmente el streaming.