Cómo obtener la IP de la red externa en vb
Cómo obtener el código IP de la red externa en vb:
'Obtener IP de red pública
Función de declaración privada InternetOpen Lib Alias "wininet.dll" "InternetOpenA" ( _
ByVal sAgent como cadena, ByVal lAccessType como longitud, _
ByVal sProxyName como cadena, ByVal sProxyBypass como cadena, _
ByVal lFlags Mientras) Mientras
Función de declaración privada InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" ( _
ByVal hInternetSession Mientras, ByVal sUrl Como cadena, _ p>
ByVal sHeaders como cadena, ByVal lHeadersLength como largo, _
ByVal lFlags como largo, ByVal lContext como largo) como largo
Función de declaración privada InternetReadFile Lib "wininet. dll" ( _
ByVal hFile As Long, ByVal sBuffer As String, _
ByVal lNumBytesToRead As Long, _
lNumberOfBytesRead As Long) Como Entero p>
Función de declaración privada InternetCloseHandle Lib "wininet.dll" (_
ByVal hInet As Long) como entero
Const privada INTERNET_FLAG_NO_CACHE_WRITE = amp; p>Función de declaración privada URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Función pública GetSub() como cadena
Dim wburl$, wburl2$, X1, X2, X3, X4
En caso de error Ir a err
wburl = " /calle
atic/customercare/yourIP.asp"
wburl2 = GetUrlFile(wburl2)
Si InStr(1, wburl2, "No se puede encontrar la página") = 0 Entonces
X3 = InStr(1, wburl2, "lt;h2gt;")
(wburl2, X3, X4 - X3)
X3 = Reemplazar(X3, "lt; h2gt;", "")
)
X3 = Reemplazar(X3, vbCrLf, "")
GetSub = X3
Salir de la función
Else
GetSub = "127.0.0.1"
Finalizar si
err:
GetSub = "127.0.0.1"
Función final
Función privada GetUrlFile(stUrl como cadena) como cadena
Dim lgInternet As Long, lgSession As Long
Dim stBuf As String * 1024
Dim inRes As Integer
Dim lgRet As Long
Dim stTotal As String
stTotal = vbNullString
lgSession = InternetOpen( "VBTagEdit", 1, vbNullString, vbNullString, 0)
Si lgSession entonces
lgInternet = InternetOpenUrl(lgSession, stUrl , vbNullString, _
0, INTERNET_FLAG_NO_CACHE_WRITE , 0)
Si lgInternet entonces
Hacer
inRes = InternetReadFile(lgInternet, stBuf, 1024, lgRet)
stTotal = stTotal amp; Mid$(stBuf, 1, lgRet)
Bucle Mientras (lgRet lt; gt; 0)
Fin Si
inRes = InternetCloseHandle(lg
Internet)
Finalizar si
GetUrlFile = stTotal
Función final
Uso:
En formulario Simplemente llame ObtenerSub.
List1.AddItem ("IP pública:" & GetSub "..").