Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    185

    (vb6) Nome Pc e indirizzo ip

    Mi potete dire che librerie e codice si deve usare all'avvio di una Form per inserire il Nome del PC in uso ed il suo indirizzo iP in vbasic6?
    Ho visto che avete risposto come avere questi dati con il net ma con il 6 come si fa?
    Grazie.

  2. #2
    Utente di HTML.it L'avatar di Markooo
    Registrato dal
    Mar 2003
    Messaggi
    247
    Questo progetto vb (scaricato da internet ma non ricordo la fonte) permette di visualizzare proprio il nome del pc e relativo IP Address. Metti nel form 3 label(label1-2-3) ; 2 textbox(textbox1-2) e un command(cmdGetMachineID).

    Codice del form:
    codice:
    Private Const MAX_WSADescription As Long = 256
    Private Const MAX_WSASYSStatus As Long = 128
    Private Const ERROR_SUCCESS As Long = 0
    Private Const WS_VERSION_REQD As Long = &H101
    Private Const WS_VERSION_MAJOR As Long = WS_VERSION_REQD \ &H100 And &HFF&
    Private Const WS_VERSION_MINOR As Long = WS_VERSION_REQD And &HFF&
    Private Const MIN_SOCKETS_REQD As Long = 1
    Private Const SOCKET_ERROR As Long = -1
    
    Private Type HOSTENT
       hName      As Long
       hAliases   As Long
       hAddrType  As Integer
       hLen       As Integer
       hAddrList  As Long
    End Type
    
    Private Type WSADATA
       wVersion      As Integer
       wHighVersion  As Integer
       szDescription(0 To MAX_WSADescription) As Byte
       szSystemStatus(0 To MAX_WSASYSStatus) As Byte
       wMaxSockets   As Integer
       wMaxUDPDG     As Integer
       dwVendorInfo  As Long
    End Type
    
    
    Private Declare Function WSAGetLastError Lib "WSOCK32.DLL" () As Long
    Private Declare Function WSAStartup Lib "WSOCK32.DLL" (ByVal wVersionRequired As Long, lpWSADATA As WSADATA) As Long
    Private Declare Function WSACleanup Lib "WSOCK32.DLL" () As Long
    Private Declare Function GetHostName Lib "WSOCK32.DLL" Alias "gethostname" (ByVal szHost As String, ByVal dwHostLen As Long) As Long
    Private Declare Function GetHostByName Lib "WSOCK32.DLL" Alias "gethostbyname" (ByVal szHost As String) As Long
    
    Private Declare Sub CopyMemory Lib "Kernel32.dll" Alias "RtlMoveMemory" (hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)
    
    
    Private Sub cmdGetMachineID_Click()
        'Recupera le informazioni sulla macchina.
        Text1.Text = GetIPHostName
        Text2.Text = GetIPAddress
        'Se l'indirizzo IP della macchina è "127.0.0.1", significa che il computer non è collegato alla rete; viceversa, il sitema è online.
        If Text2.Text = "127.0.0.1" Then Label3.Caption = "Il computer non è collegato alla rete" Else Label3.Caption = "Il computer è collegato alla rete"
    End Sub
    Private Function GetIPAddress() As String
        Dim sHostName As String * 256
        Dim lpHost As Long
        Dim HOST As HOSTENT
        Dim dwIPAddr As Long
        Dim tmpIPAddr() As Byte
        Dim i As Integer
        Dim sIPAddr  As String
        If Not SocketsInitialize() Then
            GetIPAddress = ""
            Exit Function
        End If
        
        If GetHostName(sHostName, 256) = SOCKET_ERROR Then
            GetIPAddress = ""
            MsgBox "Errore del Socket di Windows numero " & Str$(WSAGetLastError()) & ". Impossibile recuperare il nome dell'host.", vbExclamation, Me.Caption
            SocketsCleanup
            Exit Function
        End If
        
        sHostName = Trim$(sHostName)
        lpHost = GetHostByName(sHostName)
        If lpHost = 0 Then
            GetIPAddress = ""
            MsgBox "Errore del Socket di Windows. Impossibile recuperare il nome dell'host.", vbExclamation, Me.Caption
          SocketsCleanup
          Exit Function
       End If
        'To extract the returned IP address, we have to copy
        'the HOST structure and its members.
        CopyMemory HOST, lpHost, Len(HOST)
        CopyMemory dwIPAddr, HOST.hAddrList, 4
        'Create an array to hold the result.
        ReDim tmpIPAddr(1 To HOST.hLen)
        CopyMemory tmpIPAddr(1), dwIPAddr, HOST.hLen
        'With the array, build the actual address,
        'appending a period between members.
        For i = 1 To HOST.hLen
            sIPAddr = sIPAddr & tmpIPAddr(i) & "."
        Next i
        'The routine adds a period to the end of the
        'string, so remove it here.
        GetIPAddress = Mid$(sIPAddr, 1, Len(sIPAddr) - 1)
        SocketsCleanup
    End Function
    
    
    Private Function GetIPHostName() As String
        Dim sHostName As String * 256
        If Not SocketsInitialize() Then
            GetIPHostName = ""
            Exit Function
        End If
        If GetHostName(sHostName, 256) = SOCKET_ERROR Then
            GetIPHostName = ""
            MsgBox "Errore del Socket di Windows numero " & Str$(WSAGetLastError()) & ". Impossibile recuperare il nome dell'host.", vbExclamation, Me.Caption
            SocketsCleanup
            Exit Function
        End If
        GetIPHostName = Left$(sHostName, InStr(sHostName, Chr(0)) - 1)
        SocketsCleanup
    End Function
    
    
    Private Function HiByte(ByVal wParam As Integer) As Integer
        Dim tmp As Integer
        tmp = wParam \ &H100
        HiByte = tmp And &HFF&
    End Function
    
    
    Private Function LoByte(ByVal wParam As Integer) As Integer
        LoByte = wParam And &HFF&
    End Function
    
    
    Private Sub SocketsCleanup()
        If WSACleanup() <> ERROR_SUCCESS Then
            MsgBox "Errore del Socket.", vbExclamation, Me.Caption
        End If
    End Sub
    
    Private Function SocketsInitialize() As Boolean
        Dim WSAD As WSADATA
        Dim sLoByte As String
        Dim sHiByte As String
        If WSAStartup(WS_VERSION_REQD, WSAD) <> ERROR_SUCCESS Then
            MsgBox "Il Socket di Windows a 32 bit non risponde correttamente.", vbExclamation, Me.Caption
            SocketsInitialize = False
            Exit Function
        End If
        If WSAD.wMaxSockets < MIN_SOCKETS_REQD Then
            MsgBox "Questa applicazione richiede almeno " & CStr(MIN_SOCKETS_REQD) & " sockets supportati.", vbExclamation, Me.Caption
            SocketsInitialize = False
            Exit Function
        End If
        If LoByte(WSAD.wVersion) < WS_VERSION_MAJOR Or (LoByte(WSAD.wVersion) = WS_VERSION_MAJOR And HiByte(WSAD.wVersion) < WS_VERSION_MINOR) Then
            sHiByte = CStr(HiByte(WSAD.wVersion))
            sLoByte = CStr(LoByte(WSAD.wVersion))
            MsgBox "La versione del Socket " & sLoByte & "." & sHiByte & " non è supportata dal Socket di Windows a 32 bit.", vbExclamation, Me.Caption
            SocketsInitialize = False
            Exit Function
        End If
        'La procedura è terminata correttamente.
        SocketsInitialize = True
    End Function
    
    Private Sub Form_Load()
        cmdGetMachineID_Click
    End Sub
    Non saprei

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.