スイッチのポート上のMACアドレスの便利な表示huawei、linksys、dlink、extreme with expect

毎日、テクニカルサポートとやり取りするために、スイッチを登ってポピーを見る必要があります。



彼は期待してすぐに戦いに乗り出した。 書いて、テストして、わかった。 今私はあなたと共有しています、多分誰かが役に立つでしょう。



最初に、空のファイルnano ./get_mac.shを作成します



次に、以下のコードを挿入する必要があります。



#!/usr/bin/expect -f if {[llength $argv] != 2} { puts "  : ./get_mac 10.5.X.XXX 'port'" exit 1 } set ip [lindex $argv 0] set eth [lindex $argv 1] set login "  " set pass "" package require Expect spawn telnet $ip expect { "*assw*" { send "$pass\n" expect "*>" send "su\n" expect "*ass*" send "$pass\n" expect "*>" send "disp mac-addr dy | inc $eth\n" expect "*>" send "q\n"} "*User Name*" { send "$login\n" expect "*asswor*" send "$pass\n" expect "*#" send "show brid address-table ethernet e$eth\n" expect "*#" send "exit\n"} "*login*" { send "admin\n" expect "*password*" send "$pass\n" expect "*#*" send "show fdb port $eth\n" expect "*#*" send "exit\n"} "*Name*" { send "$login\n" expect "*Word*" send "$pass\n" expect "*#" send "show fdb port $eth\n" expect "*#" send "logo\n"} } interact
      
      





それでは、その仕組みを見てみましょう。



コマンドラインで、スクリプトコール、スイッチのIP、およびMACを確認するポートを記述する必要があります。./get_mac.sh 10.5.0.10 1



その後、スクリプトが実行されます。 アスペクトは入力値を分析します。 グリーティングに応じて、目的のコードセグメントが実行されます。



Huaweiスイッチには機能があります。 fdbテーブルを動的に読み取り、含まれている値でソートできます。 したがって、これらのスイッチのポートパラメータをより正確に指定することをお勧めします。 たとえば、 Eth0 / 0 /ポート番号または0/0 /ポート 番号 。 そうしないと、スクリプトは変数を含むすべてのポピーをダンプし、待機のためにスクリプトがクラッシュする可能性があります。



このスクリプトは、ハードウェアhuawei s2326TP-EI、dlink des-3028、linksys sr224g4、およびExtreme Summit 200-24でテストされています。 理論的には、32.35やciscoなどの他のシリーズのdlink'ahで動作します。



All Articles