Wie erkenne ich die MAC-Adresse von Computern in einem Netzwerk?
Ich muss die Maschinen entdecken, die gerade mit nur installiertem BIOS verfügbar sind (kein Betriebssystem).
Und ich muss die MAC-Adresse der Maschinen finden, die in Betrieb sind.
Wie erkenne ich die MAC-Adresse von Computern in einem Netzwerk?
Ich muss die Maschinen entdecken, die gerade mit nur installiertem BIOS verfügbar sind (kein Betriebssystem).
Und ich muss die MAC-Adresse der Maschinen finden, die in Betrieb sind.
Antworten:
Sie müssen auf die Informationen zugreifen, die auf Ihren verwalteten Switches verfügbar sind. Wenn Sie ein nicht verwaltetes Netzwerk haben, sehe ich keine Möglichkeit, dies zu tun.
Dies setzt voraus, dass die Zielcomputer Wake-on-LAN (WoL) unterstützen. In diesem Fall wird eine Verbindung zum Server hergestellt (suchen Sie nach der blinkenden Verbindungs-LED), und die Netzwerkkarte hört WoL-Sendungen ab. AFAIK, die Karte antwortet auf nichts in diesem Zustand. Wenn kein WoL vorhanden ist, ist die Karte höchstwahrscheinlich ausgeschaltet (keine Verbindungs-LED) und funktioniert überhaupt nicht.
Wenn die Maschinen nicht eingeschaltet sind, ist dies nicht möglich.
Wenn sie eingeschaltet sind, ist dies vermutlich ebenfalls unmöglich, da Sie einen minimalen Netzwerkstapel benötigen, um zumindest Dinge wie ARP-Abfragen usw. zu beantworten, die ohne ein installiertes Betriebssystem nicht funktionieren.
Was möglicherweise funktioniert (ich weiß es nicht und kann es derzeit nicht testen) ist, dass die Netzwerkkarte und der Switch kommunizieren, wenn die Netzwerkkarte angeschlossen oder eingeschaltet ist und der Switch die MAC-Adresse auf diese Weise lernt. In diesem Fall benötigen Sie einen verwaltbaren Switch, der nach verbundenen Mac-Adressen fragt.
Mit Nmap können Sie einen sehr schnellen ARP-Scan mit der folgenden Syntax durchführen.
nmap -sn -PR -oX nmap.xml 192.168.1.0/24
Hierbei wird ARP-Ping (nur ARP-Anforderungen, kein ICMP-, UDP- oder TCP-Scan, kein Port-Scan) verwendet, um den angegebenen IP-Adressbereich zu scannen und die Antworten auf IP-Adresse / MAC-Adresse / Hostname in einer XML-Datei (nmap.xml) aufzuzeichnen.
Ich habe ein PowerShell- Skript geschrieben, das die XML-Datei mischt und eine CSV- Datei ausspuckt . Dadurch werden auch die Down-Hosts herausgefiltert. Ich finde das einfacher in Excel zu verwenden als die XML-Datei. Ist hier das Index, wenn jedermann interessiert ist.
# Define nmap input file
$NmapXMLFile = ".\nmap.xml"
# Initialize object array
$HostItems = @()
# Initialize index
$x = 0
# Load XML
[xml]$NmapXML = Get-Content $NmapXMLFile
# Loop through XML
ForEach ($HostNode in $NmapXML.nmaprun.host) {
# Check host status
If ($HostNode.status.state -eq "up") {
# Create host object
$HostObj = "" | Select-Object ID, Hostname, 'IP Address', 'MAC Address', Vendor
# Store ID and increment index
$HostObj.ID = $x += 1
# Store hostname
$HostObj.Hostname = $HostNode.hostnames.hostname.name
# Loop through addresses
foreach ($HostAddress in $HostNode.address) {
# Check IP address
If ($HostAddress.addrtype -eq "ipv4") {
# Store IP address
$HostObj.'IP Address' = $HostAddress.addr
}
# Check MAC address
If ($HostAddress.addrtype -eq "mac") {
# Store MAC address
$HostObj.'MAC Address' = $HostAddress.addr
# Store vendor
$HostObj.Vendor = $HostAddress.vendor
}
}
# Append host object to array
$HostItems += $HostObj
}
}
# Print host items
$HostItems
# Export host items to CSV
$HostItems | Export-CSV -NoType .\nmap.csv
Scantype n not supported
. Anscheinend wird das Flag -sn
von Nmap 4.x nicht unterstützt.
show mac-address-table
).Wenn Sie von einem Unix-Computer aus die Computer ohne Betriebssystem im selben LAN und wenn möglich über einen Hub (keinen Switch) hören, können Sie dies versuchen
arp
cat /proc/net/arp
Möglicherweise möchten Sie es auch versuchen wireshark
(von einem Computer mit Betriebssystem). Auch hier ist es besser, einen Hub zu verwenden, um jegliche Kommunikation von den BIOS-Computern, einschließlich Broadcasts, abzufangen.
Das Grundproblem hierbei ist, dass es sich um Layer 2-Informationen handelt, die nur von Switches angezeigt werden. Einige Switches bieten eine Schnittstelle, über die Sie diese Informationen einsehen können. Wenn dies jedoch nicht der Fall ist, müssen Sie die physische Ebene abfangen, indem Sie z. B. einen Hub zwischen den Switches installieren.
Wenn Sie verwaltete Switches verwenden, sind diese Informationen wahrscheinlich über den Switch verfügbar. Einige vom Endbenutzer integrierte Router / Switches (wie die, die häufig auch ADSL-Modems verpacken) haben manchmal eine DHCP-Client-Liste, die MAC-Adressen enthält.
Wenn Sie nicht verwaltete Switches verwenden und diese Informationen wirklich benötigen, empfehlen wir Ihnen , einen Hub zu kaufen und den Switch vorübergehend durch einen anderen zu ersetzen. Sie können dann einen Computer mit Wireshark an den Hub anschließen und ARP-Pakete erfassen, um MAC-Adressen aufzuzeichnen. Alternativ können Sie Echolot verwenden, um dies für Sie zu tun - es verfolgt selektiv ARP-Pakete und erstellt eine MAC-Adressdatenbank.
Hier ist eine Lösung, die für mich funktioniert hat:
Ein sehr einfacher kleiner Trick, den Sie innerhalb von 2 Sekunden machen können, ist die Tatsache, dass jedes Betriebssystem eine Tabelle mit dem Mac und der IP-Adresse jedes Geräts schreibt, mit dem es interagiert. Dies ist als ARP TABLE bekannt. Die Frage ist also, wie eine Interaktion mit allen Geräten erzwungen werden kann. Sie können einfach die Broadcast-IP-Adresse anpingen. Dies ist nicht perfekt, da einige Geräte oder eine Firewall die ICMP-Ping-Anforderung blockieren können, dies funktioniert jedoch in vielen Szenarien.
Die Befehle lauten (in einer IPv4 192.168.0.255-Broadcast-Adresse):
ping 192.168.0.255
In Linux verwenden:
ping -b 192.168.0.255
Warten Sie einige Sekunden, bis die Geräte antworten, und führen Sie dann Folgendes aus:
arp -a
Für IPV6-Ping siehe Giedrius Rekasius Kommentar
Nicht perfekt, aber keine Tools, keine Nachforschungen, keine Zeitverschwendung. Funktioniert in allen wichtigen Betriebssystemen und ist schnell.
ping6 -c2 -n ff02::1%wlan0
. Sie müssen lediglich den Namen der zu verwendenden Netzwerkschnittstelle aktualisieren. Die zu diesem Zweck zu verwendende IP-Adresse ist immer ff02::1
unabhängig davon, in welchem Netzwerk Sie sich befinden.
Wie bereits erwähnt, gibt es bei nicht verwalteten Switches oder BootP / PXE keine einfache Möglichkeit, die MACs von Computern ohne Betriebssystem abzurufen.
Wenn auf Ihren Computern Windows ausgeführt wird, ist das Skript einfach (normalerweise über WMI).
Hier finden Sie eine Reihe von Beispielen: http://gallery.technet.microsoft.com/ScriptCenter/en-us/site/search?f[0‹.Type=SearchText&f[0‹.Value=MAC+address&x=0&y= 0
Ich wollte vorschlagen, die MAC-Adresstabelle zu wechseln, aber jemand hat diese oben bereits behandelt.
Wenn einer der Computer sind ein Betriebssystem ausgeführt wird und eine IP - Adressen haben, können Sie in das gleiche LAN verbinden, können Sie NMAP (oder eine GUI - Version wie Zenmap) von http://nmap.org/ ... wenn Sie laufen Wenn Sie sich im selben LAN befinden, sollten Sie MAC-Adressinformationen für alle Maschinen erhalten, die antworten.
Es wäre hilfreich, mehr darüber zu erfahren, warum Sie die MAC-Adressen abrufen müssen, falls es einen besseren Weg gibt, das gleiche Ergebnis zu erzielen.
Sie können ARP-Informationen beispielsweise mit einem kontinuierlich laufenden Arpalert sammeln. Damit haben Sie die ARP-Adressen, die nach dem Start angezeigt werden.
Bei ausgeschalteten Maschinen werden keine ARP-Antworten gesendet.
Um den Vorgang zu beschleunigen, können Sie auf dem Server, auf dem arpalert ausgeführt wird, einen nmap-Ping-Scan (nmap -sP) in Ihrem Netzwerk ausführen, um alle möglichen (aktiven und ausgeführten) Hosts zur Beantwortung Ihrer arp-Abfrage zu veranlassen. Wenn Sie später regelmäßig nmap ping scan ausführen, haben Sie bessere Chancen, einen in Kürze lebenden Host zu fangen.
Ausschnitt aus arpalert:
Wenn der MAC nicht in der Liste enthalten ist, startet arpalert ein vordefiniertes Benutzerskript mit der MAC-Adresse und der IP-Adresse als Parametern.
Ausschnitt aus nmap:
Nmap ("Network Mapper") ist ein kostenloses Open Source-Dienstprogramm (Lizenz) für die Netzwerkerkundung oder Sicherheitsüberwachung
Schau dich hier um:
Ich benutze: nmap -sP 192.168.1.1/24
(Ersetzen Sie 192.168.1.1/24 durch Ihren IP-Bereich.)
Es werden Ihnen nur die Maschinen angezeigt, die in Betrieb sind, und Sie erhalten so etwas wie:
[root@x ~]# nmap -sP 192.168.1.1/24
Starting Nmap 6.40 ( http://nmap.org ) at 2014-11-22 14:20 EST
Nmap scan report for 192.168.1.1
Host is up (0.0019s latency).
MAC Address: ZZ:ZZ:54:2E:E9:B4 (Unknown)
Nmap scan report for 192.168.1.33
Host is up (0.035s latency).
MAC Address: ZZ:ZZ:FA:2D:D7:D8 (Intel Corporate)
Nmap scan report for 192.168.1.254
Host is up (0.0020s latency).
MAC Address: ZZ:ZZ:31:02:98:19 (Asustek Computer)
Nmap scan report for 192.168.1.34
Host is up.
Nmap done: 256 IP addresses (4 hosts up) scanned in 1.88 seconds
Wenn Sie kein Betriebssystem installiert haben, können Sie eine Linux Live-CD verwenden, nmap ist wahrscheinlich in den meisten von ihnen verfügbar