Linux 上の LAN 内のすべてのホスト名 (コンピュータ名) をすばやく一覧表示するスクリプト

Linux 上の LAN 内のすべてのホスト名 (コンピュータ名) をすばやく一覧表示するスクリプト

最近、LAN 内のすべてのホスト名を一覧表示する必要があります (SMB プロトコル)。しかし、findsmb コマンドでは常にすべてのホスト名を一覧表示できません。インターネットで検索しましたが、既成のソリューションがなかったので、Python スクリプトを作成しました。

このスクリプトは、LAN ARP テーブル内のすべての IP をスキャンし、ホスト名を解決しようとします。これにより、関連情報をより詳細にリストできます。

このスクリプトを実行するには、samba-common-bin および arp-scan パッケージが必要であることに注意してください。これらがない場合は、まず apt でインストールしてください。

使用方法: 直接実行するか、python3 を使用して、スキャンするネットワーク インターフェイスの名前を入力します (わからない場合は、ifconfig を実行して確認します。通常は、コマンド出力の左端の列に表示される ens33、eth0 などです)。次に、Enter キーを押して待機します。実行には数分かかる場合があります。

実行するにはルート権限が必要です。 !

#!/usr/bin/env python3

インポートOS

def shellrun(cmd):
    a = os.popen(cmd)
    b = a.read()
    c = b.split('\n')
    リターンc

def cutarpresult(lst):
    a = []
    b = []
    lst[2:]の行について:
        行が != '' の場合:
            a.append(行)
        それ以外:
            壊す
    a の行の場合:
        b.append(行を分割('\t')[0])
    bを返す

defコマンドメーカー(ip):
    'nmblookup -A ' + ip を返す

def getrst(iplist):
    最初 = []
    iplist 内の ip の場合:
        rst.append(shellrun(commandmaker(ip)))
    戻る

定義 washrst(rst):
    rtn = []
    最初の行の場合:
        行[1].split(' ')[1] != 'reply'の場合:
            rtn.append(行[:-1])
    戻る

main() を定義します:
    interface = input('どのインターフェースを使用するか: ')
    iplist = cutarpresult(shellrun('arp-scan -I ' + インターフェース + ' -l'))
    washrst(getrst(iplist)) の rs の場合:
        rsの行の場合:
            印刷(行)

__name__ == '__main__' の場合:
    主要()

Linux で LAN 内のすべてのホスト名 (コンピュータ名) をすばやく一覧表示するスクリプトに関するこの記事はこれで終わりです。Linux で LAN 内のすべてのホスト名を一覧表示する方法についての詳細は、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • PythonソケットはLAN内のWindowsとLinux間のメッセージ転送を実現します
  • VMware での Linux システム LAN とエクストラネット アクセスの構成に関するグラフィック チュートリアル
  • ユニークなアプローチ: Linux での LAN へのリモート アクセス
  • Linuxでホスト名を変更する方法
  • Linux でネットワーク カード名とホスト名を変更する方法
  • Python は Windows または Linux ホスト名の一般的な関数共有を取得します
  • Linuxホスト名を変更する方法

<<:  JavaScript ドラッグタイム ドラッグケースの詳細な説明

>>:  JavaScript でウェブ プレーヤーを実装する

推薦する

HTML メタビューポート属性の説明

ビューポートとはモバイル ブラウザは、Web ページを仮想の「ウィンドウ」(ビューポート) に配置し...

CSSはインラインブロックのずれの問題を解決します

もうナンセンスじゃない、郵便番号HTML部分 <div class="positio...

MySQL 5.7.18 インストーラーのインストール ダウンロード グラフィック チュートリアル

この記事では、MySQL 5.7.18インストーラーの詳細なインストールチュートリアルを参考までに記...

HTML onfocus gain focus および onblur lose focus イベントの詳細な説明

HTML onfocus イベント属性定義と使用法onfocus 属性は、要素がフォーカスを受け取っ...

Chrome、Firefox、IEで入力カーソルの位置がずれる問題の解決方法

ブラウザで入力カーソルがずれる問題の詳しい説明<br />仕事で問題に遭遇し、解決策を探...

Docker インストール Nginx チュートリアル 実装図

Nginx をインストールして試してみましょう。画像はクラスであり、コンテナはオブジェクトであること...

JS クロスドメイン ソリューション React 構成 リバース プロキシ

クロスドメインソリューションjsonp (get をシミュレート) CORS (クロスオリジンリソー...

Vue の基本 MVVM、テンプレート構文、データバインディング

目次1. Vueの概要Vue公式サイトMVVM アーキテクチャ パターンVue の紹介2. Vueを...

Linux mpstat コマンドの使用方法の詳細な説明

1. mpstatコマンド1.1 コマンド形式 mpstat [ -A ] [ -u ] [ -V ...

Zabbixのインストールと展開の詳細な説明

序文Zabbix は最も主流のオープンソース監視ソリューションの 1 つです。導入自体は難しくありま...

DockerでJavaプログラムを起動する方法

シンプルなSpring Boot Webプロジェクトを作成するアイデア ツールを使用して、Sprin...

DIV の一般的なタスク (パート 1) — 一般的なタスク (スクロール バーの表示、div の非表示、イベント バブリングの無効化など)

最も一般的に使用されるレイアウト要素として、DIV は Web 開発において重要な役割を果たします。...

Docker で Oracle 11g イメージ構成をプルダウンする際の問題を分析する

1. イメージをプルするdocker pull レジストリ.cn-hangzhou.aliyuncs...