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 ENDPROCEn 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 ENDPROCLa 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