15 de febrero de 2008

Conocer la IP de la conexión a Internet

Una función para saber la dirección IP de nuestra conexión a Internet.

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.

No hay comentarios. :

Publicar un comentario