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
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.