Page 1 of 1
IP Publica en Windows 7
Posted: Thu Nov 11, 2021 2:14 pm
by edufloriv
Buenos dias amigos,
Alguien tiene una función para obtener la IP PUBLICA en Windows 7 ? Sé como hacerlo en Windows 10, pero no me funciona con Windows 7.
Cordiales saludos,
Re: IP Publica en Windows 7
Posted: Thu Nov 11, 2021 7:47 pm
by dragancesu
Re: IP Publica en Windows 7
Posted: Fri Nov 12, 2021 12:18 am
by andyglezl
Re: IP Publica en Windows 7
Posted: Fri Nov 12, 2021 12:49 am
by Claudio Ricardo
Hola Eduardo
Yo uso estas para local y publica:
Code: Select all
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Funcion para obtener la IP local de la red
// Agradecimiento a Daniel Crocciari (Brasil) por la idea.
Function GetLanIp
LOCAL aLanIp := {}, cLanIp := ""
InetInit ()
aLanIp := InetGetHosts ( NetName ())
Iif (Empty (aLanIp), aLanIp := InetGetAlias ( NetName ()), )
Iif (aLanIp [1] == "127.0.0.1", cLanIp := aLanIp [1] + " Sin coneccion a LAN", cLanIp := aLanIp [1])
InetCleanUp ()
Return cLanIp
Code: Select all
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Funcion GetPublicIp
// Hace un pedido a " dyndns.org " luego extrae solo la IP del HTML recibido.
// Retorna un string con la IP publica de la conexion a internet
// Creada por Claudio Ricardo Folgán sobre una idea de HMG Forum.
Function GetPublicIp
LOCAL cUrl, oUrl, oCli, cRes, nPosIni, nPosFin
cUrl := "http://checkip.dyndns.org/"
Begin Sequence
oUrl = TUrl ():New ( cUrl )
IF Empty( oUrl )
Break
ENDIF
oCli = TIpClientHttp ():New ( oUrl )
IF Empty ( oCli )
Break
ENDIF
oCli:nConnTimeout = 20000
IF ! oCli:Open ( oUrl )
Break
ENDIF
cRes := oCli:Read ()
oCli:Close ()
End Sequence
If .NOT. Empty (cRes)
// Desde aqui es extraer solo la IP del HTML que devolvio el DNS
nPosIni := At (":", cRes)
cRes := SubStr( cRes, nPosIni + 1) // Borro hasta los 2 puntos ( : ) mas el espacio
nPosFin := At ("<", cRes) - 1
cRes := SubStr (cRes,1,nPosFin) // Extraigo hasta el primer "Menor que" ( < )
cRes := AllTrim (cRes)
EndIf
Return Iif (Empty (cRes),"DNS no disponible !",cRes)
Re: IP Publica en Windows 7
Posted: Tue Nov 16, 2021 3:27 pm
by edufloriv
Hola Claudio,
Mil gracias mi amigo, tu función trabaja excelente, gracias a eso pude identificar el problema de las colgadas en el servidor MySQL remoto del hosting. Agregue un campo a la tabla "terminales" para que cada pc se identifique con su ip pública y construí un pequeño modulo de monitoreo:

- monitor.png (30.23 KiB) Viewed 1099 times
Gracias a esto me pude dar cuenta que siempre se colgaba cuando la pc de un IP pública específica realizaba una operación y no la terminaba, al parecer dejaba bloqueda la tabla y el resto de terminales al tratar de acceder a la misma se colgaba.
Lo reporté a su técnico de hardware y cambiaron cableado y tarjetas de red y desde entonces no se ha colgado. Al final era un problema de hardware.
Mil gracias a todos por su ayuda. Saludos y un abrazo.