He buscado y solo encuentro ejemplos donde me dan la ip de la red local por ejemplo el 192.168.1.35 y yo quiero saber la ip con la que me conecto a internet las que salen p.e 190.232.8.41 igual a como lo hace http://midireccionip.com/
-Que tal si abres conexiones de red--->estado---->soporte---->detalles y listo.
-Otra forma es con el ares : panel de control---->red y listo tu ip publica.
-cmd---->ipconfig y listo.(si tienes el modem conectado directo)
-En el router,tambien sale. :silbar:
Suerte.
.
Esto ya esta en el foro, usa el buscador y lo encontraras!¡.
Nota: Hay como dos codigos que doy fe de la existencia en este foro asi que a buscarle!¡.
Dulces Lunas!¡.
http://galaxiagamer.esforos.com/tutorial-visor-de-tu-ip-t1563
Sigo sin solucionar, siempre obtengo, me parece que se llama direccion privada(interna) el tipico 192.168.1.39,192.168.1.40, etc la misma que tambien sale con ipconfig ya que estoy en una red local y no directo al router.
Si utilizo un control Winsock1.LocalIP tambien me devuelve la ip privada y yo quiero obtener desde vb6.0 la ip publica(externa), como lo hace la mentada http://midireccionip.com/ (http://midireccionip.com/) pero desde vb
saludos
asi sacas la Ip Publica:
Const INTERNET_OPEN_TYPE_DIRECT = 1
Const INTERNET_OPEN_TYPE_PROXY = 3
Const INTERNET_FLAG_RELOAD = &H80000000
Const sURL = "http://checkip.dyndns.org/"
Private Declare Function InternetOpen Lib "wininet" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet" (ByVal hInet As Long) As Integer
Private Declare Function InternetReadFile Lib "wininet" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
Private Declare Function InternetOpenUrl Lib "wininet" Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal lpszUrl As String, ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long
Public Function GetPublicIp()
Dim pIP() As String
Dim nose As String
Dim hOpen As Long, hFile As Long, sBuffer As String, Ret As Long
sBuffer = Space(1000)
hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
hFile = InternetOpenUrl(hOpen, sURL, vbNullString, ByVal 0&, INTERNET_FLAG_RELOAD, ByVal 0&)
InternetReadFile hFile, sBuffer, 1000, Ret
InternetCloseHandle hFile
InternetCloseHandle hOpen
pIP = Split(Trim(sBuffer), ": ")
nose = Left(pIP(1), Len(pIP(1)) - 16)
GetPublicIp = nose
End Function
Private Sub Main()
Debug.Print GetPublicIp
End Sub
Te pasaste con el codigo, gracias
;D
Cita de: petro_boca en 23 Agosto 2010, 12:08 PM
http://galaxiagamer.esforos.com/tutorial-visor-de-tu-ip-t1563
Eso no sirve para lo que se requiere (en Modems-Router) ¬¬".
Ducles Lunas!¡.
Cita de: xkiz en 23 Agosto 2010, 20:11 PM
Const INTERNET_OPEN_TYPE_DIRECT = 1
Const INTERNET_OPEN_TYPE_PROXY = 3
Const INTERNET_FLAG_RELOAD = &H80000000
Const sURL = "http://checkip.dyndns.org/"
Private Declare Function InternetOpen Lib "wininet" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet" (ByVal hInet As Long) As Integer
Private Declare Function InternetReadFile Lib "wininet" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
Private Declare Function InternetOpenUrl Lib "wininet" Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal lpszUrl As String, ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long
Public Function GetPublicIp()
Dim pIP() As String
Dim nose As String
Dim hOpen As Long, hFile As Long, sBuffer As String, Ret As Long
sBuffer = Space(108)
hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
hFile = InternetOpenUrl(hOpen, sURL, vbNullString, ByVal 0&, INTERNET_FLAG_RELOAD, ByVal 0&)
InternetReadFile hFile, sBuffer, [color=limegreen]108[/color], Ret
InternetCloseHandle hFile
InternetCloseHandle hOpen
pIP = Split(Trim(sBuffer), ": ")
nose = Left(pIP(1), Len(pIP(1)) - 16)
GetPublicIp = nose
End Function
Private Sub Main()
Debug.Print GetPublicIp
End Sub
modificando el buffer a como esta y lo q esta en verde ! tmb funcio esto es valido tmb o hay algo en especial el valor que se asigno en tu code original xkiz?
muy bueno y bien practico ::) ::) ::)
lo del size del buffer?
no se por que estaba en 1000, es un codigo viejo ese, nunca le preste mucha atencion. osea tengo el mismo codigo en C++ y ahi el size del buffer esta en 110, creo que aca le habia puesto 1000, para estar seguro, por si los de DynDNS modificaban algo en el .php ese. pero con 110 ó 108 tendria que ir bien.
Cita de: _katze_ en 23 Agosto 2010, 20:48 PM
Cita de: xkiz en 23 Agosto 2010, 20:11 PM
Const INTERNET_OPEN_TYPE_DIRECT = 1
Const INTERNET_OPEN_TYPE_PROXY = 3
Const INTERNET_FLAG_RELOAD = &H80000000
Const sURL = "http://checkip.dyndns.org/"
Private Declare Function InternetOpen Lib "wininet" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet" (ByVal hInet As Long) As Integer
Private Declare Function InternetReadFile Lib "wininet" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
Private Declare Function InternetOpenUrl Lib "wininet" Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal lpszUrl As String, ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long
Public Function GetPublicIp()
Dim pIP() As String
Dim nose As String
Dim hOpen As Long, hFile As Long, sBuffer As String, Ret As Long
sBuffer = Space(108)
hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
hFile = InternetOpenUrl(hOpen, sURL, vbNullString, ByVal 0&, INTERNET_FLAG_RELOAD, ByVal 0&)
InternetReadFile hFile, sBuffer, 108, Ret
InternetCloseHandle hFile
InternetCloseHandle hOpen
pIP = Split(Trim(sBuffer), ": ")
nose = Left(pIP(1), Len(pIP(1)) - 16)
GetPublicIp = nose
End Function
Private Sub Main()
Debug.Print GetPublicIp
End Sub
modificando el buffer a como esta y lo q esta en verde ! tmb funcio esto es valido tmb o hay algo en especial el valor que se asigno en tu code original xkiz?
muy bueno y bien practico ::) ::) ::)
asi :D
pone 1 boton
Const INTERNET_OPEN_TYPE_DIRECT = 1
Const INTERNET_OPEN_TYPE_PROXY = 3
Const INTERNET_FLAG_RELOAD = &H80000000
Const sURL = "http://checkip.dyndns.org/"
Private Declare Function InternetOpen Lib "wininet" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet" (ByVal hInet As Long) As Integer
Private Declare Function InternetReadFile Lib "wininet" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
Private Declare Function InternetOpenUrl Lib "wininet" Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal lpszUrl As String, ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long
Public Function GetPublicIp()
Dim pIP() As String
Dim nose As String
Dim hOpen As Long, hFile As Long, sBuffer As String, Ret As Long
sBuffer = Space(108)
hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
hFile = InternetOpenUrl(hOpen, sURL, vbNullString, ByVal 0&, INTERNET_FLAG_RELOAD, ByVal 0&)
InternetReadFile hFile, sBuffer, 108, Ret
InternetCloseHandle hFile
InternetCloseHandle hOpen
pIP = Split(Trim(sBuffer), ": ")
nose = Left(pIP(1), Len(pIP(1)) - 16)
GetPublicIp = nose
End Function
Private Sub Command1_Click()
MsgBox GetPublicIp
End Sub
con minimo 108 anda bien xkiz asi no c ocupa mas del sizebuffer ! pero por las dudas hay como esta esta bn ! gracias por responder
Cita de: _katze_ en 24 Agosto 2010, 03:41 AM
con minimo 108 anda bien xkiz asi no c ocupa mas del sizebuffer ! pero por las dudas hay como esta esta bn ! gracias por responder
fijate q modifique mi mensaje...
Cita de: petro_boca en 24 Agosto 2010, 03:39 AM
Cita de: _katze_ en 23 Agosto 2010, 20:48 PM
Cita de: xkiz en 23 Agosto 2010, 20:11 PM
Const INTERNET_OPEN_TYPE_DIRECT = 1
Const INTERNET_OPEN_TYPE_PROXY = 3
Const INTERNET_FLAG_RELOAD = &H80000000
Const sURL = "http://checkip.dyndns.org/"
Private Declare Function InternetOpen Lib "wininet" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet" (ByVal hInet As Long) As Integer
Private Declare Function InternetReadFile Lib "wininet" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
Private Declare Function InternetOpenUrl Lib "wininet" Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal lpszUrl As String, ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long
Public Function GetPublicIp()
Dim pIP() As String
Dim nose As String
Dim hOpen As Long, hFile As Long, sBuffer As String, Ret As Long
sBuffer = Space(108)
hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
hFile = InternetOpenUrl(hOpen, sURL, vbNullString, ByVal 0&, INTERNET_FLAG_RELOAD, ByVal 0&)
InternetReadFile hFile, sBuffer, 108, Ret
InternetCloseHandle hFile
InternetCloseHandle hOpen
pIP = Split(Trim(sBuffer), ": ")
nose = Left(pIP(1), Len(pIP(1)) - 16)
GetPublicIp = nose
End Function
Private Sub Main()
Debug.Print GetPublicIp
End Sub
modificando el buffer a como esta y lo q esta en verde ! tmb funcio esto es valido tmb o hay algo en especial el valor que se asigno en tu code original xkiz?
muy bueno y bien practico ::) ::) ::)
asi :D
pone 1 boton
Const INTERNET_OPEN_TYPE_DIRECT = 1
Const INTERNET_OPEN_TYPE_PROXY = 3
Const INTERNET_FLAG_RELOAD = &H80000000
Const sURL = "http://checkip.dyndns.org/"
Private Declare Function InternetOpen Lib "wininet" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet" (ByVal hInet As Long) As Integer
Private Declare Function InternetReadFile Lib "wininet" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
Private Declare Function InternetOpenUrl Lib "wininet" Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal lpszUrl As String, ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long
Public Function GetPublicIp()
Dim pIP() As String
Dim nose As String
Dim hOpen As Long, hFile As Long, sBuffer As String, Ret As Long
sBuffer = Space(108)
hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
hFile = InternetOpenUrl(hOpen, sURL, vbNullString, ByVal 0&, INTERNET_FLAG_RELOAD, ByVal 0&)
InternetReadFile hFile, sBuffer, 108, Ret
InternetCloseHandle hFile
InternetCloseHandle hOpen
pIP = Split(Trim(sBuffer), ": ")
nose = Left(pIP(1), Len(pIP(1)) - 16)
GetPublicIp = nose
End Function
Private Sub Command1_Click()
MsgBox GetPublicIp
End Sub
no dije como usarlo man, pero gracias igual !solo acote lo del code!