Foros del Web » Programando para Internet » ASP Clásico »

Saber si tengo acceso a Internet

Estas en el tema de Saber si tengo acceso a Internet en el foro de ASP Clásico en Foros del Web. Hola a todos, a ver si podeis echarme una manita. Estoy trabajando en una Intranet en donde los ordenadores que pertenecen a ella algunos tienen ...
  #1 (permalink)  
Antiguo 18/06/2007, 04:06
 
Fecha de Ingreso: octubre-2006
Mensajes: 12
Antigüedad: 17 años, 7 meses
Puntos: 0
Saber si tengo acceso a Internet

Hola a todos, a ver si podeis echarme una manita.

Estoy trabajando en una Intranet en donde los ordenadores que pertenecen a ella algunos tienen restringido el acceso a Internet y otros no. Necesito saber cuales de esos ordenadores tienen la restricción o no.

El motivo es que he hecho unas páginas para la intranet, la principal tiene un iframe con enlace a una página de Internet. Aquellos ordenadores que tienen acceso ven la página perfecta, pero aquellos que no pueden acceder a internet, les sale en el marco del iframe el típico mensaje de página no encontrada. ¿Hay alguna forma de impedir que salga ese mensaje de error? ¿O de diferenciar si hay acceso a internet para que cuando se tenga acceso se abra el enlace y cuando no salga una página en blanco?

Llevo ya un tiempo dándole vueltas y no se me ocurre como solucionarlo, gracias a todos por intentarlo.

Saludos
  #2 (permalink)  
Antiguo 18/06/2007, 09:28
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: Saber si tengo acceso a Internet

Una forma fácil es hacer la llamada a esa página mediante Microsoft.XMLHTTP (en las respuestas anteriores hay muchos ejemplos) y si te regresa algo el método Open si tiene acceso, sino, pues no

Saludos
  #3 (permalink)  
Antiguo 19/06/2007, 03:29
 
Fecha de Ingreso: octubre-2006
Mensajes: 12
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Saber si tengo acceso a Internet

Hola, Gracias por guiarme por el xmlhttp, pero el caso es que me sigue dando problemas.

Estos son los pasos que he seguido:
1) He creado el objeto xmlhttp
2) abro el objeto creado con el método Open y los parámetros Get, la direccion externa y False.
3)Envio la petición con el método send.
4) Compruebo que el estado del objeto con el método status es 200 (OK), en caso de serlo abro la página externa, si no no hago nada.

Esto me funciona muy bien en caso de que la página que intente abrir no exita o la bloquee el cortafuegos. Pero cuando la página a abrir es una dirección válida, pero que no se tiene acceso porque el ordenador no tiene acceso a Internet, no se porque pero la intenta abrir, de ahí que me salga el error de página no encontrada.

¿HAy alguna solución?

Gracias y Saludos.
  #4 (permalink)  
Antiguo 19/06/2007, 04:22
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Saber si tengo acceso a Internet

Puedes intentar bajar el timeout de la página que lee el HTTPRequest con server.ScriptTimeout y esperar la respuesta que te devuelve State del HTTPRequest. Para que el método send actue de inmediato debes poner la propiedad de async a false

obj.async = false

asi el status recibe antes la respuesta.


NOTA: Otra cosa: ASP VBScript posee una gestión de errores, pobre pero la tiene: Usa el on error resume next y on error goto 0 al principio y al final del objeto HTTPRequest y captura el error.

Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -

Última edición por tammander; 19/06/2007 a las 05:26
  #5 (permalink)  
Antiguo 19/06/2007, 09:33
 
Fecha de Ingreso: octubre-2006
Mensajes: 12
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Saber si tengo acceso a Internet

Gracias a todos!!!

Al final encontré una solución. En vez de crear el objeto xmlhttp en asp, lo creo en javascript y ya funciona. El problema que tenía es que en asp, era el iis el que comprobaba si tenia acceso a internet (que si lo tenia), pero era el pc el que no tenia acceso. Al hacerlo en javascript es el pc el que comprueba si tiene o no acceso, y funciona de maravilla.

Saludos y gracias otra vez por vuestra ayuda.
  #6 (permalink)  
Antiguo 21/06/2007, 16:13
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
Re: Saber si tengo acceso a Internet

¿podrias publicar el codigo?
  #7 (permalink)  
Antiguo 22/06/2007, 00:38
 
Fecha de Ingreso: octubre-2006
Mensajes: 12
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Saber si tengo acceso a Internet

El código javascrips sería:


<script type="text/javascript">

function cargarpagexterna () {
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")
/* Realizamos una llamada a una dirección externa para comprobar si se tiene conexión*/
if (xmlhttp!=null)
{
xmlhttp.open("HEAD","Direccion externa",false)
xmlhttp.send(null)
// if xmlhttp shows "loaded"
if (xmlhttp.readyState==4)
{
if (xmlhttp.status==200) {
document.write ("<iframe src='Direccion externa' width='135' height='350' SCROLLING='NO' HSPACE='0' VSPACE='0' FRAMEBORDER='0' MARGINHEIGHT='0'>");
document.write ("</iframe>");

}
else
{
//No cargo la página externa
//document.write(xmlhttp.status);

}
}
}
else
{
alert("El explorador no soporta XMLHTTP.")
}
}
</script>

se llamaría como

<script> cargarpagexterna(); </script>

El problema de utilizar este método es que cuando se carga la página en donde está ubicada este código, sale un mensaje del explorador indicando que se va a cargar una página que está fuera de tu control y de ta la opción de si quieres que la cargue o no. Al final no queda una solución muy elegante, pero sirve.

Saludos!!!
  #8 (permalink)  
Antiguo 22/06/2007, 08:38
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
Re: Saber si tengo acceso a Internet

Hola Vanharis, gracias por responder. He probado el codigo poniendo iframe src='www.google.es' y no me salta ningun alert , pero tampoco veo nada, cuando realmente si tengo conexion internet , ¿porque puede ser?

<script type="text/javascript">

function cargarpagexterna () {
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")
/* Realizamos una llamada a una dirección externa para comprobar si se tiene conexión*/
if (xmlhttp!=null)
{
xmlhttp.open("HEAD","http://www.google.es",false)
xmlhttp.send(null)
// if xmlhttp shows "loaded"
if (xmlhttp.readyState==4)
{
if (xmlhttp.status==200) {
document.write ("<iframe style='background-color:#FF0033' src='www.google.es' width='135' height='350' SCROLLING='NO' HSPACE='0' VSPACE='0' FRAMEBORDER='1' MARGINHEIGHT='0'>");
document.write ("</iframe>");
alert('Cargo la página externa');
}
else
{
//No cargo la página externa
//document.write(xmlhttp.status);
alert('No cargo la página externa');
}
}
}
else
{
alert("El explorador no soporta XMLHTTP.")
}
}
</script>
<script> cargarpagexterna(); </script>

Última edición por sqa212; 22/06/2007 a las 08:46
  #9 (permalink)  
Antiguo 24/06/2007, 03:54
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
Re: Saber si tengo acceso a Internet

Me he dado cuenta que es debido a Permiso denegado.

Me aparece el triangulo amarillo de error, dice Permiso denegado.en la linea:

xmlhttp.open("HEAD","http://www.google.es",false)

Lo estoy probando en una pagina asp dentro del IIS, si lo hago desde mi pc en una pagina html si funciona, pero si esa misma pagina HTML la pongo en el IIS no funciona.

¿Alguien sabe como dar permisos para que esto funcione desde el IIS?
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 16:54.