Leo mi duda es como puedo obtener la direccion ip de mi equipo asi como su nombre e informacion del sistema desde visual basic 6.0. Existe algún control que lo muestre?
2 Respuestas
Respuesta de leosoft
1
1
leosoft, Programacion Avanzada en VisualBasic, trabajo hace mas de 15 años...
Un control que te de todos los datos no hay, lo mas facil es con llamadas a API, dime que datos quieres saber y te paso las API y como utilizarlas.
En primer lugar gracias por responder Me interesaria obtener la ip de mi equipo y el nombre que le identifica en la red. Un saludo leo
Te paso como hacerlo con API, primero agrega un modulo a tu aplicaion y pega este codigo: Const MAX_IP = 5 Type IPINFO dwAddr As Long dwIndex As Long dwMask As Long dwBCastAddr As Long dwReasmSize As Long unused1 As Integer unused2 As Integer End Type Type MIB_IPADDRTABLE dEntrys As Long mIPInfo(MAX_IP) As IPINFO End Type Type IP_Array mBuffer As MIB_IPADDRTABLE BufferLen As Long End Type Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long) Public Declare Function GetIpAddrTable Lib "IPHlpApi" (pIPAdrTable As Byte, pdwSize As Long, ByVal Sort As Long) As Long Public Const MAX_COMPUTERNAME_LENGTH As Long = 31 Public Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long Public Function ConvertAddressToString(longAddr As Long) As String Dim myByte(3) As Byte Dim Cnt As Long CopyMemory myByte(0), longAddr, 4 For Cnt = 0 To 3 ConvertAddressToString = ConvertAddressToString + CStr(myByte(Cnt)) + "." Next Cnt ConvertAddressToString = Left$(ConvertAddressToString, Len(ConvertAddressToString) - 1) End Function Public Function GetWanIP() As String Dim Ret As Long, Tel As Long Dim bBytes() As Byte Dim TempList() As String Dim TempIP As String Dim Tempi As Long Dim Listing As MIB_IPADDRTABLE Dim L3 As String On Error GoTo END1 GetIpAddrTable ByVal 0&, Ret, True If Ret <= 0 Then Exit Function ReDim bBytes(0 To Ret - 1) As Byte ReDim TempList(0 To Ret - 1) As String GetIpAddrTable bBytes(0), Ret, False CopyMemory Listing.dEntrys, bBytes(0), 4 For Tel = 0 To Listing.dEntrys - 1 CopyMemory Listing.mIPInfo(Tel), bBytes(4 + (Tel * Len(Listing. MIPInfo(0)))), Len(Listing. MIPInfo(Tel)) TempList(Tel) = ConvertAddressToString(Listing.mIPInfo(Tel).dwAddr) Next Tel TempIP = TempList(0) For Tempi = 0 To Listing.dEntrys - 1 L3 = Left(TempList(Tempi), 3) If L3 <> "169" And L3 <> "127" And L3 <> "192" Then TempIP = TempList(Tempi) End If Next Tempi GetWanIP = TempIP Exit Function END1: GetWanIP = "" End Function '------------ ahora con esto tomas el dato del numero de IP y el nombre de la maquina en la red: Dim dwLen As Long Dim strString As String dwLen = MAX_COMPUTERNAME_LENGTH + 1 strString = String(dwLen, "X") GetComputerName strString, dwLen strString = Left(strString, dwLen) NombreMaquina = strString NumeroIP = GetWanIP