彼は期待してすぐに戦いに乗り出した。 書いて、テストして、わかった。 今私はあなたと共有しています、多分誰かが役に立つでしょう。
最初に、空のファイル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で動作します。