Con esta función que descarga la página de inicio del sitio www.WhatIsMyIP.org podemos saber con que IP estamos conectados a Internet.
Esta función tiene dos opciones:
Opción 1: Con la nueva libreria My incluida en Sedna para VFP 9.0:
? IpInternet()
FUNCTION IpInternet()
LOCAL My AS My
My = NEWOBJECT("My","My.vcx")
ERASE "IP.txt"
IF 0 = My.Computer.Network.DownloadFile("http://www.whatismyip.org", "IP.txt")
RETURN FILETOSTR("IP.txt")
ELSE
RETURN ""
ENDIF
ENDPROC
Opción 2: Con la API de Windows (esta opción es válida para todas las versiones de Visual FoxPro):
? IpInternet()
FUNCTION IpInternet()
DECLARE LONG URLDownloadToFile IN URLMON.DLL ;
LONG, STRING, STRING, LONG, LONG
ERASE "IP.txt"
IF 0 = URLDownloadToFile(0, "http://www.whatismyip.org", "IP.txt", 0, 0)
RETURN FILETOSTR("IP.txt")
ELSE
RETURN ""
ENDIF
ENDPROC
En realidad ambas funciones realizan lo mismo, ya que el método My.Computer.Network.DownloadFile() de la clase My, en un "envoltorio" de la función URLDownloadToFile() de la API de Windows.Opción 3: Con la libreria VFPConnection.FLL de Craig Boyd que la pueden descargar de aquí:
? IpInternet()
FUNCTION IpInternet()
SET LIBRARY TO (LOCFILE("vfpconnection.fll","FLL")) ADDITIVE
lcIP = HTTPToStr("http://www.whatismyip.org")
RELEASE LIBRARY "vfpconnection.fll"
RETURN lcIP
ENDPROC
La función HTTPToStr() no realiza lectura/escritura de disco, con lo cual se evita que la página descargada quede en la cache.
16 años sin un solo comentario
ResponderBorrar