Skript zum schnellen Auflisten aller Hostnamen (Computernamen) im LAN unter Linux

Skript zum schnellen Auflisten aller Hostnamen (Computernamen) im LAN unter Linux

Vor kurzem musste ich alle Hostnamen im LAN auflisten (im SMB-Protokoll), aber der Befehl findsmb schlägt immer fehl, wenn es darum geht, alle Hostnamen aufzulisten. Ich habe im Internet gesucht, aber keine fertige Lösung gefunden, also habe ich ein Python-Skript geschrieben.

Das Skript scannt alle IPs in der LAN-ARP-Tabelle und versucht, ihre Hostnamen aufzulösen, wodurch die relevanten Informationen umfassender aufgelistet werden können.

Beachten Sie, dass zum Ausführen dieses Skripts die Pakete samba-common-bin und arp-scan erforderlich sind. Wenn Sie diese nicht haben, installieren Sie sie bitte zuerst mit apt.

Verwendung: Führen Sie es direkt aus oder verwenden Sie Python3. Geben Sie dann den Namen der zu scannenden Netzwerkschnittstelle ein (wenn Sie ihn nicht kennen, führen Sie zur Überprüfung „ifconfig“ aus. Normalerweise wird in der äußersten linken Spalte der Befehlsausgabe „ens33“, „eth0“ usw. angezeigt.) Drücken Sie dann die Eingabetaste und warten Sie. Die Ausführung kann mehrere Minuten dauern.

Zum Ausführen sind Root-Berechtigungen erforderlich! !

#!/usr/bin/env python3

Betriebssystem importieren

def shellrun(cmd):
    a = os.popen(cmd)
    b = a.lesen()
    c = b.split('\n')
    Rückkehr c

def cutarpresult(lst):
    ein = []
    b = []
    für Zeile in lst[2:]:
        wenn Zeile != '':
            a.anhängen(Zeile)
        anders:
            brechen
    für Zeile in a:
        b.anhängen(Zeile.teilen('\t')[0])
    Rückkehr b

def Befehlsmacher(IP):
    returniere 'nmblookup -A ' + ip

auf def getrst(iplist):
    erster = []
    für IP in IP-Liste:
        rst.append(shellrun(Befehlsmacher(ip)))
    Rückkehr zuerst

def washerst(rst):
    rtn = []
    für Zeile in rst:
        wenn Zeile[1].split(' ')[1] != 'Antwort':
            rtn.append(Zeile[:-1])
    Hin- und Rückflug

def main():
    Schnittstelle = Eingabe('welche Schnittstelle soll verwendet werden:')
    iplist = cutarpresult(shellrun('arp-scan -I ' + Schnittstelle + ' -l'))
    für rs in washrst(getrst(iplist)):
        für Zeile in rs:
            drucken(Zeile)

wenn __name__ == '__main__':
    hauptsächlich()

Dies ist das Ende dieses Artikels über ein Skript, das schnell alle Hostnamen (Computernamen) in einem LAN unter Linux auflistet. Weitere Informationen zum Auflisten aller Hostnamen in einem LAN unter Linux finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Python-Socket realisiert die Nachrichtenübertragung zwischen Windows und Linux im LAN
  • Ein grafisches Tutorial zur Konfiguration des Linux-System-LAN und des Extranet-Zugriffs unter VMware
  • Ein einzigartiger Ansatz: Fernzugriff auf LAN unter Linux
  • So ändern Sie den Hostnamen in Linux
  • So ändern Sie den Netzwerkkartennamen und den Hostnamen in Linux
  • Python erhält die allgemeine Funktionsfreigabe für den Windows- oder Linux-Hostnamen
  • So ändern Sie den Linux-Hostnamen

<<:  Detaillierte Erklärung zur Verwendung von NULL und NOT NULL beim Erstellen von Tabellen in MySQL

>>:  Detaillierte Erläuterung der MySQL Innodb-Speicherstruktur und der Speicherung von Nullwerten

Artikel empfehlen

Vue implementiert einen einfachen Bildwechseleffekt

In diesem Artikelbeispiel wird der spezifische Co...

Linux Redis-Sentinel-Konfigurationsdetails

herunterladen Download-Adresse: https://redis.io/...

HTML+CSS zum Erreichen eines reaktionsfähigen Karten-Hover-Effekts

Inhaltsverzeichnis erreichen: Zusammenfassen: Daz...

Vue3 Vue CLI-Konfiguration für mehrere Umgebungen

Inhaltsverzeichnis 1. Einleitung 2. Umschalten 1....

So deaktivieren Sie Webseitenstile mit dem Webentwickler von Firefox

Voraussetzung: Das Webentwickler-Plugin wurde inst...

Ein Artikel erklärt den Klassenlademechanismus von Tomcat

Inhaltsverzeichnis - Vorwort - - JVM-Klassenlader...

TypeScript-Aufzählungstyp

Inhaltsverzeichnis 1. Übersicht 2. Digitale Aufzä...

Vue+echarts realisiert gestapelte Balkendiagramme

In diesem Artikel wird der spezifische Code von V...

HTML-Tabellen-Markup-Tutorial (14): Tabellenkopf

<br />In der HTML-Sprache können Sie der Tab...

Detaillierte Erläuterung des Prinzips der Vue-Überwachungsdaten

Inhaltsverzeichnis 1. Einleitung II. Überwachungs...