CheckMAC


      Hi,

      anbei ein kleines VBScript, das die aktuelle MAC eines (lokalen oder entfernten) Rechners ermittelt und diese gegen ein Array von MAC-Adressen abgleicht. Ich weiß nicht , ob das jemand gebrauchen kann, aber es sind auf alle Fälle zwei, drei interessante Funktionen drin (WMI-Connect, Stringarrays, Upper-> Lowercase)

      edit:
      Nochmal in klarerem Deutsch, nachdem ich von meiner besseren Hälfte nur einen äußerst verständnislosen Blick geerntet habe:
      Das Script ermittelt die aktive Netzwerkkarte in einem Rechner. Von dieser liest es anschließend die 12stellige Hardwareadresse aus (diese Adressen sind immer einmalig, weltweit) und vergleicht die so ermittelte Adresse mit einer Liste erlaubter Hardware-Adressen. Stimmt die Adresse mit einer gültigen aus der Liste überein, so wird dies ausgegeben (man könnte hier noch weitere Funktionen einfügen). Hintergrund der ganzen Sache war, daß auf einem externen Webserver der Zugriff nur für bestimmte Rechner erlaubt werden sollte und alle anderen waren zu blocken. Bevor sich jemand jetzt wundert - das Script wird noch verschlüsselt, so daß die Adressen nicht mehr im Klartext zu lesen sind. ;)

      Grüße,
      Mostly


      '==============================
      ' VBScript Source File
      ' NAME: CheckMAC.vbs
      ' AUTHOR: A. Richter
      ' DATE : 23.10.2007
      ' COMMENT: ermittelt die MAC der aktiven NIC und prüft sie auf Gültigkeit
      '==============================

      Dim strComputer
      Dim objWMIService
      Dim colItems
      Dim ActiveMAC
      dim a(5)
      a(0)="0000f7f5d5d3"
      a(1)="00fa15623ddd"
      a(2)="00fb6257adbf"
      a(3)="00fa62457cad"
      a(4)="00fb7618fbaa"
      a(5)="0015F2157633"

      strComputer = "."
      Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
      Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE",,48)

      For Each objItem in colItems
      ActiveMAC=LCase(Replace (objItem.MACAddress,":",""))
      Next

      For val = 1 to UBound(a)
      a(val) = LCase(a(val))
      If a(val) = ActiveMAC Then
      WScript.Echo "Die MAC-Adresse " & a(val) & " ist gültig."
      End If
      Next
      WScript.Quit

      ▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀
      ╔╗╔╦══╦╗╔╦══╦╦╦╗
      ║╚╝║╔╗║╚╝║╔╗║║║║
      ║╔╗║╠╣║╔╗║╠╣╠╬╬╣
      ╚╝╚╩╝╚╩╝╚╩╝╚╩╩╩╝
      (\__/)
      ( +.+)
      (")(")
      ▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „mostly_harmless“ ()

      RE: RE: CheckMAC

      roterDrache schrieb:

      dem kann ich nicht zustimmen ;)
      btw: wofür brauchste das?
      Ich habe das bewußt so geschrieben, um Benutzer nicht zu verwirren Drache. Ok, hier die Full Version:

      "diese Adressen sind einmalig, weltweit - außer bei NICs aus Mexiko" :D Das brauchte nicht ich, sondern ein Kollege.
      ▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀
      ╔╗╔╦══╦╗╔╦══╦╦╦╗
      ║╚╝║╔╗║╚╝║╔╗║║║║
      ║╔╗║╠╣║╔╗║╠╣╠╬╬╣
      ╚╝╚╩╝╚╩╝╚╩╝╚╩╩╩╝
      (\__/)
      ( +.+)
      (")(")
      ▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀