In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Chequear una página Web
Chequear una página Web
Quisiera preparar un pequeño programita, para a través de un Timer chequear cada x tiempo si una página Web está o no caida, pues me temo que está caida más veces de lo que pienso.
Hay alguna manera de hacerlo desde Xailer ?
Gracias.
Emilio Gil.
Hay alguna manera de hacerlo desde Xailer ?
Gracias.
Emilio Gil.
Chequear una página Web
Emilio,
prueba algo así:
FUNCTION CheckWeb( cURL )
LOCAL lOk := .F.
WITH OBJECT TInternet():New()
IF :Open()
lOk := :Connect( cURL )
:Close()
ENDIF
END
RETURN lOk
Está escrito al vuelo y no lo he probado.
Saludos,
José Lalín
prueba algo así:
FUNCTION CheckWeb( cURL )
LOCAL lOk := .F.
WITH OBJECT TInternet():New()
IF :Open()
lOk := :Connect( cURL )
:Close()
ENDIF
END
RETURN lOk
Está escrito al vuelo y no lo he probado.
Saludos,
José Lalín
Chequear una página Web
Hola Lalin:
Con esto ya había probado y poniendo cualquier valor en cURL siempre devuelve en :connect(cURL) verdadero, sólo si cURL := "" devuelve falso.
Un saludo y gracias.
Emilio Gil.
Con esto ya había probado y poniendo cualquier valor en cURL siempre devuelve en :connect(cURL) verdadero, sólo si cURL := "" devuelve falso.
Un saludo y gracias.
Emilio Gil.
Chequear una página Web
Emilio,
recuerdo que había visto algo en el foro de xHarbour:
http://www.rhinocerus.net/forum/lang-xh ... 72-ping-xh arbour-2.html
Si necesitas ayuda para implementarla en Xailer no dudes en decirlo.
Saludos,
José Lalín
recuerdo que había visto algo en el foro de xHarbour:
http://www.rhinocerus.net/forum/lang-xh ... 72-ping-xh arbour-2.html
Si necesitas ayuda para implementarla en Xailer no dudes en decirlo.
Saludos,
José Lalín
Chequear una página Web
Lalin:
Al colocar dicha función en xailer me da el siguiente error:
Compilando tPrincipal.prg...
Enlazando gestion.exe...
Error: Unresolved external '_HB_FUN_HB_PING' referenced from C:XAILER2GESTIONOBJTPRINCIPAL.OBJ
1 Files, 0 Warnings, 1 Errors
Tiempo de compilación: 0.67s Tiempo de enlazado: 0.34s Tiempo total: 1.05s
Me puedes ayudar un poco a resolver en xailer.
Gracias.
Emilio Gil.
Al colocar dicha función en xailer me da el siguiente error:
Compilando tPrincipal.prg...
Enlazando gestion.exe...
Error: Unresolved external '_HB_FUN_HB_PING' referenced from C:XAILER2GESTIONOBJTPRINCIPAL.OBJ
1 Files, 0 Warnings, 1 Errors
Tiempo de compilación: 0.67s Tiempo de enlazado: 0.34s Tiempo total: 1.05s
Me puedes ayudar un poco a resolver en xailer.
Gracias.
Emilio Gil.
Chequear una página Web
Emilio,
aquí la tienes funcionando. La he renombrado a XA_Ping() para evitar la
colisión de nombres y he tenido que corregir un par de bugs.
Añade el fuente y la librería a tu proyecto y llámala con:
IF XA_Ping( cURL ) == 0
MsgInfo( "Ok" )
ENDIF
Saludos,
José Lalín
--
aquí la tienes funcionando. La he renombrado a XA_Ping() para evitar la
colisión de nombres y he tenido que corregir un par de bugs.
Añade el fuente y la librería a tu proyecto y llámala con:
IF XA_Ping( cURL ) == 0
MsgInfo( "Ok" )
ENDIF
Saludos,
José Lalín
--
Chequear una página Web
JLalin wrote on Wed, 15 February 2012 20:02Emilio,
aquí la tienes funcionando. La he renombrado a XA_Ping() para evitar la
colisión de nombres y he tenido que corregir un par de bugs.
Añade el fuente y la librería a tu proyecto y llámala con:
IF XA_Ping( cURL ) == 0
MsgInfo( "Ok" )
ENDIF
Saludos,
José Lalín
--
Discúlpame José, me dices que has corregido unos bugs, que compile y añada librería a mi proyecto, pero ¿donde están los fuentes que tengo que compilar ?
Un saludo.
aquí la tienes funcionando. La he renombrado a XA_Ping() para evitar la
colisión de nombres y he tenido que corregir un par de bugs.
Añade el fuente y la librería a tu proyecto y llámala con:
IF XA_Ping( cURL ) == 0
MsgInfo( "Ok" )
ENDIF
Saludos,
José Lalín
--
Discúlpame José, me dices que has corregido unos bugs, que compile y añada librería a mi proyecto, pero ¿donde están los fuentes que tengo que compilar ?
Un saludo.
Chequear una página Web
Emilio,
el zip está adjunto al mensaje anterior.
Saludos,
José Lalín
el zip está adjunto al mensaje anterior.
Saludos,
José Lalín
Chequear una página Web
Emilio,
> Quisiera preparar un pequeño programita, para a través de
> un Timer chequear cada x tiempo si una página Web está o
> no caida, pues me temo que está caida más veces de lo que
> pienso.
>
> Hay alguna manera de hacerlo desde Xailer ?
Aparte de que lo puedas hacer con Xailer, hay servicios gratuitos que te
permiten monitorizar una web, precísamente para saber si está en línea o
caida. Yo utilizo montastic (http://www.montastic.com). El servicio
gratuito te permite monitorizar hasta 3 direcciones, e indicar la
frecuencia de chequeo (mínimo cada 30 minutos). El servicio de pago te
permite comprobarlo cada 5 minutos. Y una de las cosas buenas que tiene,
es que te envia una alerta por email cuando cae la web, y otra cuando
vuelve a estar activa.
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
> Quisiera preparar un pequeño programita, para a través de
> un Timer chequear cada x tiempo si una página Web está o
> no caida, pues me temo que está caida más veces de lo que
> pienso.
>
> Hay alguna manera de hacerlo desde Xailer ?
Aparte de que lo puedas hacer con Xailer, hay servicios gratuitos que te
permiten monitorizar una web, precísamente para saber si está en línea o
caida. Yo utilizo montastic (http://www.montastic.com). El servicio
gratuito te permite monitorizar hasta 3 direcciones, e indicar la
frecuencia de chequeo (mínimo cada 30 minutos). El servicio de pago te
permite comprobarlo cada 5 minutos. Y una de las cosas buenas que tiene,
es que te envia una alerta por email cuando cae la web, y otra cuando
vuelve a estar activa.
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
- Carlos Ortiz
- Mensajes: 872
- Registrado: Mié Jul 01, 2009 5:44 pm
- Ubicación: Argentina - Córdoba
- Contactar:
Chequear una página Web
Al compilar salen estos mensajes:
Compilando xaping.prg...
Error E2209 xaping.prg 22: Unable to open include file 'icmpapi.h'
Warning W8065 xaping.prg 68: Call to function 'IcmpCreateFile' with no
prototype in function HB_FUN_XA_PING
Warning W8069 xaping.prg 68: Nonportable pointer conversion in function
HB_FUN_XA_PING
Warning W8065 xaping.prg 83: Call to function 'IcmpSendEcho' with no
prototype in function HB_FUN_XA_PING
Warning W8065 xaping.prg 90: Call to function 'IcmpCloseHandle' with no
prototype in function HB_FUN_XA_PING
1 Files, 4 Warnings, 1 Errors
Tiempo de compilación: 0.30s Tiempo de enlazado: 0s Tiempo total: 0.31s
Carlos Ortiz.
Compilando xaping.prg...
Error E2209 xaping.prg 22: Unable to open include file 'icmpapi.h'
Warning W8065 xaping.prg 68: Call to function 'IcmpCreateFile' with no
prototype in function HB_FUN_XA_PING
Warning W8069 xaping.prg 68: Nonportable pointer conversion in function
HB_FUN_XA_PING
Warning W8065 xaping.prg 83: Call to function 'IcmpSendEcho' with no
prototype in function HB_FUN_XA_PING
Warning W8065 xaping.prg 90: Call to function 'IcmpCloseHandle' with no
prototype in function HB_FUN_XA_PING
1 Files, 4 Warnings, 1 Errors
Tiempo de compilación: 0.30s Tiempo de enlazado: 0s Tiempo total: 0.31s
Carlos Ortiz.
@dbfarma
www.dbfarma.com.ar
www.dbfarma.com.ar
-
- Mensajes: 558
- Registrado: Mar Feb 09, 2010 2:26 pm
Chequear una página Web
#ifndef _ICMPAPI_H
#define _ICMPAPI_H
#if __POCC__ >= 500
#pragma once
#endif
/* Windows ICMP Echo Request API definitions (idiot version) */
#if defined(WIN32_DEFAULT_LIBS)
#pragma comment(lib, "iphlpapi.lib")
#endif
#ifdef __cplusplus
extern "C" {
#endif
HANDLE WINAPI IcmpCreateFile(VOID);
#if (NTDDI_VERSION >= NTDDI_WINXP)
HANDLE WINAPI Icmp6CreateFile(VOID);
#endif /* NTDDI_VERSION >= NTDDI_WINXP */
BOOL WINAPI IcmpCloseHandle(HANDLE);
DWORD WINAPI IcmpSendEcho(HANDLE, IPAddr, LPVOID, WORD, PIP_OPTION_INFORMATION, LPVOID, DWORD, DWORD);
DWORD WINAPI IcmpSendEcho2(HANDLE,HANDLE,
#ifdef PIO_APC_ROUTINE_DEFINED
PIO_APC_ROUTINE,
#else /* !PIO_APC_ROUTINE_DEFINED */
FARPROC,
#endif /* !PIO_APC_ROUTINE_DEFINED */
PVOID, IPAddr, LPVOID, WORD, PIP_OPTION_INFORMATION, LPVOID, DWORD, DWORD);
#if (NTDDI_VERSION >= NTDDI_VISTASP1)
DWORD WINAPI IcmpSendEcho2Ex(HANDLE, HANDLE,
#ifdef PIO_APC_ROUTINE_DEFINED
PIO_APC_ROUTINE,
#else /* !PIO_APC_ROUTINE_DEFINED */
FARPROC,
#endif /* !PIO_APC_ROUTINE_DEFINED */
PVOID, IPAddr, IPAddr, LPVOID, WORD, PIP_OPTION_INFORMATION, LPVOID, DWORD, DWORD);
#endif /* NTDDI_VERSION >= NTDDI_VISTASP1 */
#if (NTDDI_VERSION >= NTDDI_WINXP)
DWORD WINAPI Icmp6SendEcho2(HANDLE, HANDLE,
#ifdef PIO_APC_ROUTINE_DEFINED
PIO_APC_ROUTINE,
#else /* !PIO_APC_ROUTINE_DEFINED */
FARPROC,
#endif /* !PIO_APC_ROUTINE_DEFINED */
PVOID, struct sockaddr_in6 *, struct sockaddr_in6 *, LPVOID, WORD, PIP_OPTION_INFORMATION, LPVOID, DWORD, DWORD);
#endif /* NTDDI_VERSION >= NTDDI_WINXP */
DWORD IcmpParseReplies(LPVOID, DWORD);
#if (NTDDI_VERSION >= NTDDI_WINXP)
DWORD Icmp6ParseReplies(LPVOID, DWORD);
#endif /* NTDDI_VERSION >= NTDDI_WINXP */
#ifdef __cplusplus
}
#endif
#endif /* _ICMPAPI_H */
--
#define _ICMPAPI_H
#if __POCC__ >= 500
#pragma once
#endif
/* Windows ICMP Echo Request API definitions (idiot version) */
#if defined(WIN32_DEFAULT_LIBS)
#pragma comment(lib, "iphlpapi.lib")
#endif
#ifdef __cplusplus
extern "C" {
#endif
HANDLE WINAPI IcmpCreateFile(VOID);
#if (NTDDI_VERSION >= NTDDI_WINXP)
HANDLE WINAPI Icmp6CreateFile(VOID);
#endif /* NTDDI_VERSION >= NTDDI_WINXP */
BOOL WINAPI IcmpCloseHandle(HANDLE);
DWORD WINAPI IcmpSendEcho(HANDLE, IPAddr, LPVOID, WORD, PIP_OPTION_INFORMATION, LPVOID, DWORD, DWORD);
DWORD WINAPI IcmpSendEcho2(HANDLE,HANDLE,
#ifdef PIO_APC_ROUTINE_DEFINED
PIO_APC_ROUTINE,
#else /* !PIO_APC_ROUTINE_DEFINED */
FARPROC,
#endif /* !PIO_APC_ROUTINE_DEFINED */
PVOID, IPAddr, LPVOID, WORD, PIP_OPTION_INFORMATION, LPVOID, DWORD, DWORD);
#if (NTDDI_VERSION >= NTDDI_VISTASP1)
DWORD WINAPI IcmpSendEcho2Ex(HANDLE, HANDLE,
#ifdef PIO_APC_ROUTINE_DEFINED
PIO_APC_ROUTINE,
#else /* !PIO_APC_ROUTINE_DEFINED */
FARPROC,
#endif /* !PIO_APC_ROUTINE_DEFINED */
PVOID, IPAddr, IPAddr, LPVOID, WORD, PIP_OPTION_INFORMATION, LPVOID, DWORD, DWORD);
#endif /* NTDDI_VERSION >= NTDDI_VISTASP1 */
#if (NTDDI_VERSION >= NTDDI_WINXP)
DWORD WINAPI Icmp6SendEcho2(HANDLE, HANDLE,
#ifdef PIO_APC_ROUTINE_DEFINED
PIO_APC_ROUTINE,
#else /* !PIO_APC_ROUTINE_DEFINED */
FARPROC,
#endif /* !PIO_APC_ROUTINE_DEFINED */
PVOID, struct sockaddr_in6 *, struct sockaddr_in6 *, LPVOID, WORD, PIP_OPTION_INFORMATION, LPVOID, DWORD, DWORD);
#endif /* NTDDI_VERSION >= NTDDI_WINXP */
DWORD IcmpParseReplies(LPVOID, DWORD);
#if (NTDDI_VERSION >= NTDDI_WINXP)
DWORD Icmp6ParseReplies(LPVOID, DWORD);
#endif /* NTDDI_VERSION >= NTDDI_WINXP */
#ifdef __cplusplus
}
#endif
#endif /* _ICMPAPI_H */
--
Chequear una página Web
Carlos,
> Error E2209 xaping.prg 22: Unable to open include file 'icmpapi.h'
los warnings aparecen por la falta de un archivo de cabecera. Asegúratede
tener las rutas configuradas y el BCC instalado correctamente.
De todas formas, leyendo la documentación de la MSDN veo que tal como está
hecho no funcionará correctamente en algunas versiones del SO así que lo
corregiré y lo publicaré la semana que viene.
Saludos,
José Lalín
> Error E2209 xaping.prg 22: Unable to open include file 'icmpapi.h'
los warnings aparecen por la falta de un archivo de cabecera. Asegúratede
tener las rutas configuradas y el BCC instalado correctamente.
De todas formas, leyendo la documentación de la MSDN veo que tal como está
hecho no funcionará correctamente en algunas versiones del SO así que lo
corregiré y lo publicaré la semana que viene.
Saludos,
José Lalín
- Carlos Ortiz
- Mensajes: 872
- Registrado: Mié Jul 01, 2009 5:44 pm
- Ubicación: Argentina - Córdoba
- Contactar:
Chequear una página Web
Solucionado lo de los warnings con el .h que subió José Ramón. (Gracias
JRCP)
Compilé y funciona correctamente tanto para páginas web como para
directorios remotos ftp
(Plataforma XP, Xailer 2.4)
En un par de dias lo probaré en Windows 2000 / 2003 server y W7.
Nuevamente muchas gracias!!!
Carlos Ortiz
JRCP)
Compilé y funciona correctamente tanto para páginas web como para
directorios remotos ftp
(Plataforma XP, Xailer 2.4)
En un par de dias lo probaré en Windows 2000 / 2003 server y W7.
Nuevamente muchas gracias!!!
Carlos Ortiz
@dbfarma
www.dbfarma.com.ar
www.dbfarma.com.ar
Chequear una página Web
Carlos,
> Solucionado lo de los warnings con el .h que subió José Ramón. (Gracias
> JRCP)
Comprueba el directorio BCCinclude, ese archivo debe estar ahí y no en
otra parte.
> En un par de dias lo probaré en Windows 2000 / 2003 server y W7.
10 a 1 a que falla en W2K
Saludos,
José Lalín
> Solucionado lo de los warnings con el .h que subió José Ramón. (Gracias
> JRCP)
Comprueba el directorio BCCinclude, ese archivo debe estar ahí y no en
otra parte.
> En un par de dias lo probaré en Windows 2000 / 2003 server y W7.
10 a 1 a que falla en W2K
Saludos,
José Lalín
-
- Mensajes: 558
- Registrado: Mar Feb 09, 2010 2:26 pm
Chequear una página Web
Hola José Lalín:
El 20/02/2012 12:18, José Lalín escribió:
> Carlos,
>
>> Solucionado lo de los warnings con el .h que subió José Ramón. (Gracias
>> JRCP)
>
> Comprueba el directorio BCCinclude, ese archivo debe estar ahí y no en
> otra parte.
En mi directorio BCCinclude, ese archivo no existe, lo encontré en el
directorio PellesCinclude y lo probé poniéndolo en el include del
proyecto, pero si tú dices que debe estar en ese otro directorio no hay
problema y lo copio ahí pero sería mejor que pasaras el que tú tienes en
BCC/include para que fuera el mismo, o me dijeras de donde lo puedo
descargar.
>
>> En un par de dias lo probaré en Windows 2000 / 2003 server y W7.
>
> 10 a 1 a que falla en W2K
La prueba que yo he realizado con windows XP no falla ahora que estoy
seguro que si tú dices que falla con otras versiones de windows será así.
>
> Saludos,
> José Lalín
>
>
José Ramón Castro.
El 20/02/2012 12:18, José Lalín escribió:
> Carlos,
>
>> Solucionado lo de los warnings con el .h que subió José Ramón. (Gracias
>> JRCP)
>
> Comprueba el directorio BCCinclude, ese archivo debe estar ahí y no en
> otra parte.
En mi directorio BCCinclude, ese archivo no existe, lo encontré en el
directorio PellesCinclude y lo probé poniéndolo en el include del
proyecto, pero si tú dices que debe estar en ese otro directorio no hay
problema y lo copio ahí pero sería mejor que pasaras el que tú tienes en
BCC/include para que fuera el mismo, o me dijeras de donde lo puedo
descargar.
>
>> En un par de dias lo probaré en Windows 2000 / 2003 server y W7.
>
> 10 a 1 a que falla en W2K
La prueba que yo he realizado con windows XP no falla ahora que estoy
seguro que si tú dices que falla con otras versiones de windows será así.
>
> Saludos,
> José Lalín
>
>
José Ramón Castro.
Chequear una página Web
José Ramón,
he estado mirándolo y creo recordar que BCC no lo incluye de serie y el que
tengo lo copié desde el MSDK. De todas formas lo incluiré con la próxima
actualización de la función.
> La prueba que yo he realizado con windows XP no falla ahora que estoy
> seguro que si tú dices que falla con otras versiones de windows seráasí.
No estoy 100% seguro pero me imagino que fallará. No importa puesto que he
modificado el código para que funcione según se especifica en la MSDN y de
paso ya no es necesario enlazar la librería que está en el ZIP.
Luego intentaré subirlo.
Saludos,
José Lalín
he estado mirándolo y creo recordar que BCC no lo incluye de serie y el que
tengo lo copié desde el MSDK. De todas formas lo incluiré con la próxima
actualización de la función.
> La prueba que yo he realizado con windows XP no falla ahora que estoy
> seguro que si tú dices que falla con otras versiones de windows seráasí.
No estoy 100% seguro pero me imagino que fallará. No importa puesto que he
modificado el código para que funcione según se especifica en la MSDN y de
paso ya no es necesario enlazar la librería que está en el ZIP.
Luego intentaré subirlo.
Saludos,
José Lalín