elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Obtener IP de una DNS vb6
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Obtener IP de una DNS vb6  (Leído 3,304 veces)
VanX
Wiki

Desconectado Desconectado

Mensajes: 222



Ver Perfil WWW
Obtener IP de una DNS vb6
« en: 10 Julio 2011, 16:47 pm »

Hola, buscando en google encontré este code que sirve para sacar la IP a una DNS pero me manda la solución en un MsgBox y necesitaria que se pudiera copiar. He intentado con todo lo que he podido pero no consigo hacerlo...

Código
  1. Option Explicit
  2.  
  3. Private Declare Function DnsQuery Lib "dnsapi" Alias "DnsQuery_A" (ByVal strname As String, ByVal wType As Integer, ByVal fOptions As Long, ByVal pServers As Long, ppQueryResultsSet As Long, ByVal pReserved As Long) As Long
  4. Private Declare Function DnsRecordListFree Lib "dnsapi" (ByVal pDnsRecord As Long, ByVal FreeType As Long) As Long
  5. Private Declare Function lstrlen Lib "kernel32" (ByVal straddress As Long) As Long
  6. Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, ByVal Source As Long, ByVal Length As Long)
  7. Private Declare Function inet_ntoa Lib "ws2_32.dll" (ByVal pIP As Long) As Long
  8. Private Declare Function inet_addr Lib "ws2_32.dll" (ByVal sAddr As String) As Long
  9.  
  10. Private Const DnsFreeRecordList         As Long = 1
  11. Private Const DNS_TYPE_A                As Long = &H1
  12. Private Const DNS_QUERY_BYPASS_CACHE    As Long = &H8
  13.  
  14. Private Type VBDnsRecord
  15.    pNext           As Long
  16.    pName           As Long
  17.    wType           As Integer
  18.    wDataLength     As Integer
  19.    flags           As Long
  20.    dwTel           As Long
  21.    dwReserved      As Long
  22.    prt             As Long
  23.    others(35)      As Byte
  24. End Type
  25.  
  26. Private Sub Command1_Click()
  27.    MsgBox Resolve("google.com", "208.67.222.222")
  28. End Sub
  29.  
  30. Private Function Resolve(sAddr As String, Optional sDnsServers As String) As String
  31.    Dim pRecord     As Long
  32.    Dim pNext       As Long
  33.    Dim uRecord     As VBDnsRecord
  34.    Dim lPtr        As Long
  35.    Dim vSplit      As Variant
  36.    Dim laServers() As Long
  37.    Dim pServers    As Long
  38.    Dim sName       As String
  39.  
  40.    If LenB(sDnsServers) <> 0 Then
  41.        vSplit = Split(sDnsServers)
  42.        ReDim laServers(0 To UBound(vSplit) + 1)
  43.        laServers(0) = UBound(laServers)
  44.        For lPtr = 0 To UBound(vSplit)
  45.            laServers(lPtr + 1) = inet_addr(vSplit(lPtr))
  46.        Next
  47.        pServers = VarPtr(laServers(0))
  48.    End If
  49.    If DnsQuery(sAddr, DNS_TYPE_A, DNS_QUERY_BYPASS_CACHE, pServers, pRecord, 0) = 0 Then
  50.        pNext = pRecord
  51.        Do While pNext <> 0
  52.            Call CopyMemory(uRecord, pNext, Len(uRecord))
  53.            If uRecord.wType = DNS_TYPE_A Then
  54.                lPtr = inet_ntoa(uRecord.prt)
  55.                sName = String(lstrlen(lPtr), 0)
  56.                Call CopyMemory(ByVal sName, lPtr, Len(sName))
  57.                If LenB(Resolve) <> 0 Then
  58.                    Resolve = Resolve & " "
  59.                End If
  60.                Resolve = Resolve & sName
  61.            End If
  62.            pNext = uRecord.pNext
  63.        Loop
  64.        Call DnsRecordListFree(pRecord, DnsFreeRecordList)
  65.    End If
  66. End Function


saludos y gracias de antemano ;)


En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Obtener IP de una DNS vb6
« Respuesta #1 en: 10 Julio 2011, 17:43 pm »

....y necesitaria que se pudiera copiar. He intentado con todo lo que he podido pero no consigo hacerlo...

Deberias buscar sobre la clase Clipboard

Código
  1. Private Sub Command1_Click()
  2.    MsgBox Resolve("google.com", "208.67.222.222")
  3. End Sub
  4.  


« Última modificación: 10 Julio 2011, 17:46 pm por raul338 » En línea

79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: Obtener IP de una DNS vb6
« Respuesta #2 en: 10 Julio 2011, 17:56 pm »

HOLA!!!

Bueno, yo opte por lo facil la vez que lo quise hacer...

Podes guardar en in txt un comando ping y lo lees.

O conectate con un socket y ahí revisas el remote host ip.

GRACIAS POR LEER!!!
En línea

"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*
Elemental Code


Desconectado Desconectado

Mensajes: 622


Im beyond the system


Ver Perfil
Re: Obtener IP de una DNS vb6
« Respuesta #3 en: 11 Julio 2011, 02:35 am »

http://support.microsoft.com/kb/160215
http://support.microsoft.com/kb/154512

Tadaaaaa

Si lei bien con eso deberia ser suficiente.




Podia necesitarlo en un futuro, prefiero colgarlo aca para no perderlo.

Código
  1. ' ////////////////////////////////////////////////////////////////
  2. ' // *GetIPfromHost                                             //
  3. ' // *Autor: Elemental Code (Milton.Candelero@gmail.com)        //
  4. ' // *Podeis agrandar o reducir el codigo, siempre y cuando se  //
  5. ' // respete la autoria y se me comuniquen esos cambios.        //
  6. ' ////////////////////////////////////////////////////////////////
  7. Option Explicit
  8. Public Function GetIPfromHost(ByRef sURL As String) As String
  9.    Dim WshShell, oExec, a$
  10.  
  11.    Set WshShell = CreateObject("WScript.Shell")
  12.    Set oExec = WshShell.Exec("ping " & sURL)
  13.    a$ = ""
  14.    Do While oExec.Status = 0
  15.         If Not oExec.StdOut.AtEndOfStream Then
  16.              a$ = a$ & oExec.StdOut.Read(1)
  17.         End If
  18.         DoEvents
  19.    Loop
  20.  
  21.    GetIPfromHost = Text_Between_Words(a$, "[", "]")
  22.  
  23.    Set oExec = Nothing
  24.    Set WshShell = Nothing
  25. End Function
  26.  
  27. ' ////////////////////////////////////////////////////////////////
  28. ' // *Text_Between_Words                                        //
  29. ' // *Autor: *PsYkE1* (miguelin.majo@gmail.com)                 //
  30. ' // *Podeis agrandar o reducir el codigo, siempre y cuando se  //
  31. ' // respete la autoria y se me comuniquen esos cambios.        //
  32. ' // *Agradecimientos a BlackZeroX.                             //
  33. ' // *Visita http://foro.rthacker.net                           //
  34. ' ////////////////////////////////////////////////////////////////
  35. Public Function Text_Between_Words(Text As String, String1 As String, _
  36. String2 As String) As String
  37.    Dim Pos1              As Integer
  38.    Dim Pos2              As Integer
  39.    Dim Start             As Integer
  40.    Dim TotalLen          As Integer
  41.    Pos1 = InStr(Text, String1)
  42.    Pos2 = InStr(Text, String2)
  43.    If Pos1 = 0 Or Pos2 = 0 Then Exit Function
  44.    Start = Pos1 + Len(String1)
  45.    TotalLen = Pos2 - Start
  46.    Text_Between_Words = Mid$(Text, Start, TotalLen)
  47. End Function

Mete esto en un modulo y llamalo asi:

Código
  1. msgbox GetIPfromHost ("www.google.com")

Espero que sirva (Muestra una cmd en blanco :S, voy a ver si logro arreglarlo)
« Última modificación: 11 Julio 2011, 23:03 pm por Elemental Code » En línea

I CODE FOR $$$
Programo por $$$
Hago tareas, trabajos para la facultad, lo que sea en VB6.0

Mis programas
VanX
Wiki

Desconectado Desconectado

Mensajes: 222



Ver Perfil WWW
Re: Obtener IP de una DNS vb6
« Respuesta #4 en: 11 Julio 2011, 13:34 pm »

no me funciona lo del .txt, ya hace tiempo que los AV algunos lo detectan  :-\

gracias de todos modos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
obtener IP
Programación Visual Basic
soru13 2 2,559 Último mensaje 2 Octubre 2006, 21:44 pm
por WarGhost
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines