MaximoAccess

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

Obrigado

Administração do MaximoAccess


Participe do fórum, é rápido e fácil

MaximoAccess

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

Obrigado

Administração do MaximoAccess

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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 : 7121
    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 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 113 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 : 49
    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 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 : 7121
    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 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: 7/3/2021, 05:03