MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    IP Local / Publico , MAC Address , ID Processador, Serie Motherboard

    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6687
    Registrado : 15/03/2013

    IP Local / Publico , MAC Address , ID Processador, Serie Motherboard Empty IP Local / Publico , MAC Address , ID Processador, Serie Motherboard

    Mensagem  ahteixeira em 11/5/2018, 12:33

    Olá a todos,

    Já temos na nossa casa exemplos, no entanto partilho código para ober:

    IP Local
    IP Publico
    MAC Address


    Exemplo construído através de código partilhado por Christos Samaras no link abaixo:
    myengineeringworld.net/2014/12/get-public-ip-local-ip-mac-address-vba.html

    Funções:
    Código:
    Function GetMyLocalIP() As String
    '----------------------------------------------------------------------------------------------
    'Origem: https://www.myengineeringworld.net/2014/12/get-public-ip-local-ip-mac-address-vba.html
    '----------------------------------------------------------------------------------------------
    'Written By:    Christos Samaras
    'Date:          22/11/2014
    'E-mail:        xristos.samaras@gmail.com
    'Site:          http://www.myengineeringworld.net
    '----------------------------------------------------------------------------------------------

        'Declaring the necessary variables.
        Dim strComputer     As String
        Dim objWMIService   As Object
        Dim colItems        As Object
        Dim objItem         As Object
        Dim myIPAddress     As String
        
        'Set the computer.
        strComputer = "."
        
        'The root\cimv2 namespace is used to access the Win32_NetworkAdapterConfiguration class.
        Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
        
        'A select query is used to get a collection of IP addresses from the network adapters that have the property IPEnabled equal to true.
        Set colItems = objWMIService.ExecQuery("SELECT IPAddress FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
        
        'Loop through all the objects of the collection and return the first non-empty IP.
        For Each objItem In colItems
            If Not IsNull(objItem.IPAddress) Then myIPAddress = Trim(objItem.IPAddress(0))
            Exit For
        Next
        
        'Return the IP string.
        GetMyLocalIP = myIPAddress

    End Function

    Código:
    Function GetMyPublicIP() As String
    '----------------------------------------------------------------------------------------------
    'Origem: https://www.myengineeringworld.net/2014/12/get-public-ip-local-ip-mac-address-vba.html
    '----------------------------------------------------------------------------------------------
    'Written By:    Christos Samaras
    'Date:          22/11/2014
    'E-mail:        xristos.samaras@gmail.com
    'Site:          http://www.myengineeringworld.net
    '----------------------------------------------------------------------------------------------

        Dim HttpRequest As Object
        
        On Error Resume Next
        'Create the XMLHttpRequest object.
        Set HttpRequest = CreateObject("MSXML2.XMLHTTP")

        'Check if the object was created.
        If Err.Number <> 0 Then
            'Return error message.
            GetMyPublicIP = "Could not create the XMLHttpRequest object!"
            'Release the object and exit.
            Set HttpRequest = Nothing
            Exit Function
        End If
        On Error GoTo 0
        
        'Create the request - no special parameters required.
        HttpRequest.Open "GET", "http://myip.dnsomatic.com", False
        
        'Send the request to the site.
        HttpRequest.Send
            
        'Return the result of the request (the IP string).
        GetMyPublicIP = HttpRequest.ResponseText

    End Function

    Código:
    Function GetMyMACAddress() As String
    '----------------------------------------------------------------------------------------------
    'Origem: https://www.myengineeringworld.net/2014/12/get-public-ip-local-ip-mac-address-vba.html
    '----------------------------------------------------------------------------------------------
    'Written By:    Christos Samaras
    'Date:          22/11/2014
    'E-mail:        xristos.samaras@gmail.com
    'Site:          http://www.myengineeringworld.net
    '----------------------------------------------------------------------------------------------

        'Declaring the necessary variables.
        Dim strComputer     As String
        Dim objWMIService   As Object
        Dim colItems        As Object
        Dim objItem         As Object
        Dim myMACAddress    As String
        
        'Set the computer.
        strComputer = "."
        
        'The root\cimv2 namespace is used to access the Win32_NetworkAdapterConfiguration class.
        Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
        
        'A select query is used to get a collection of network adapters that have the property IPEnabled equal to true.
        Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
        
        'Loop through all the collection of adapters and return the MAC address of the first adapter that has a non-empty IP.
        For Each objItem In colItems
            If Not IsNull(objItem.IPAddress) Then myMACAddress = objItem.MACAddress
            Exit For
        Next
        
        'Return the IP string.
        GetMyMACAddress = myMACAddress

    End Function

    Quem quiser usar para Proteção dos seus sistemas, pode completar com mais segurança através do exemplo postado pelo JPaulo:
    https://www.maximoaccess.com/t32447-numero-de-serie-da-motherboard-do-hd

    Abraço e bons estudos!
    cheers
    Anexos
    IP Local / Publico , MAC Address , ID Processador, Serie Motherboard AttachmentIP_Local_Publico_MAC_Pro_MB.zip
    Atualização com ID Processador e Numero Serie da Motherboard
    Você não tem permissão para fazer download dos arquivos anexados.
    (31 Kb) Baixado 91 vez(es)


    Última edição por ahteixeira em 19/12/2018, 16:00, editado 2 vez(es)
    avatar
    ManuelQuim
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Angola
    Mensagens : 41
    Registrado : 29/10/2015

    IP Local / Publico , MAC Address , ID Processador, Serie Motherboard Empty Re: IP Local / Publico , MAC Address , ID Processador, Serie Motherboard

    Mensagem  ManuelQuim em 11/5/2018, 15:38

    cheers Útil. Parabéns Vai ser um auxílio para projetos futuros e estudo Smile . Obrigado por partilhar
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6687
    Registrado : 15/03/2013

    IP Local / Publico , MAC Address , ID Processador, Serie Motherboard Empty Re: IP Local / Publico , MAC Address , ID Processador, Serie Motherboard

    Mensagem  ahteixeira em 19/12/2018, 16:04

    Olá a todos,

    Atualizei o exemplo da mensagem nº 1 com código postado pelo colega JPaulo para obter o número de série da Motherboard:
    Código:
    Public Function MOTHERBOARDSERIAL() As String
    'Origem: http://www.maximoaccess.com/t32447-numero-de-serie-da-motherboard-do-hd
    'OBTEM O SERIAL NUMBER DA MOTHERBOARD
    'www.maximoaccess.com

    Dim objs As Object
    Dim obj As Object
    Dim WMI As Object
    Dim sAns As String

    Set WMI = GetObject("WinMgmts:")
    Set objs = WMI.InstancesOf("Win32_BaseBoard")
        For Each obj In objs
          sAns = sAns & obj.SerialNumber
         If sAns < objs.Count Then sAns = sAns & ","
        Next
    MOTHERBOARDSERIAL = sAns
    End Function

    e para obter o ID do Processador da máquina:
    Código:
    Function GetProcessorID() As String
    'ahteixeira 19-12-2018

        ' Using late binding to avoid a Reference problem
        Dim strComputer As String
        Dim objWMIService As Object
        Dim colItems As Object
        Dim objItem As Object

        strComputer = "."

        Set objWMIService = GetObject("winmgmts:" _
            & "{impersonationLevel=impersonate}!\\" _
            & strComputer & "\root\cimv2")

        Set colItems = objWMIService.ExecQuery( _
            "SELECT * FROM Win32_Processor", , 48)

        For Each objItem In colItems
            GetProcessorID = Nz(objItem.ProcessorID, 0)
        Next

        Set objItem = Nothing
        Set colItems = Nothing
        Set objWMIService = Nothing

    End Function

    Abraço e bons estudos

      Data/hora atual: 5/6/2020, 03:16