【ExcelVBA】IPCOMのコンフィグから利用機能を自動で一覧化する。

スポンサーリンク




作業を自動化する

IPCOMのコンフィグを見てもどんな機能を使っているのかぱっと見て判断するのは難しいです。

この記事は、

  • IPCOMのコンフィグの見方がわからない。
  • IPCOMのコンフィグから設定している機能を確認したい

そんな方に読んでもらいたいです。

 

 

スポンサーリンク

コンフィグから機能一覧を作る

IPCOMのコンフィグから機能を一覧化する動きを説明します。

IPCOMでshow running-configを実行した結果をテキストファイルに保存します。
保存したファイルをマクロを設定したエクセルと同じフォルダに保存します。

エクセルを開いて、ALT+F8でマクロ画面を開き「IPCOM機能確認」を実行します。

 

実行後、

テキストファイルが出力されました。
ファイル名は実行した日時になっています。

ファイルを開くと、

この例では、サーバ負荷分散が有になっています。
このコンフィグのIPCOMは、サーバ負荷分散しか使っていない事がわかりました。
複数のコンフィグがあれば全て一括でチェックして、1つのファイルにまとめて結果を表示します。

そのかわり.txtや.logのファイルを全て読み込んでいるので、コンフィグと関係ないファイルがあった場合もチェックされますがその結果は無視してください。

このマクロでチェックできる機能の一覧

  • リンクアグリゲーション
  • VLAN
  • 送信先NAT
  • 送信元NAT
  • アクセス制御ルール
  • アクセス制御マップ
  • アノマリ型IPS
  • シグネチャ型IPS
  • 帯域制御
  • サーバ負荷分散
  • SSLアクセラレーター
  • リンク負荷分散
  • 装置冗長化
  • LAN二重化

よく使われる機能をピックアップしています。

では実際にこのマクロを使う方法を次の項目で説明します。
プログラムのコピペで使うことができるので簡単です。

 

マクロの設定

プログラムをコピペする画面を開く操作の説明です。
ツールの[開発]から[Visual Basic]を選択して「Microsoft Visual Basic for Applications」を開く

開発タブが無い場合は、[ファイル]-[オプション]-[リボンのユーザー設定]で開発のチェックを入れて下さい。

ツールの[挿入]から[標準モジュール]を選択

真っ白な画面が出るので下のコードをコピーして貼り付けます。

 

このコードをコピーして貼り付けます。
Sub IPCOMのコンフィグから機能を確認()
保存ファイル名 = "IPCOMの機能一覧化_" & Format(Date, "yyyymmdd") & Format(Time(), "hhmmss") & ".txt"
'Excelのフォルダに存在するテキストファイルリストを取得
検索パス = ThisWorkbook.Path
ファイル名リスト = ファイルリスト取得(検索パス)

For i = LBound(ファイル名リスト) To UBound(ファイル名リスト)
ファイルパス = ファイルパス取得(検索パス, ファイル名リスト(i))
'コンフィグファイルを配列へ格納
コンフィグ = ファイルの内容を配列へ格納(ファイルパス)
'機能抽出
結果 = 機能抽出(ファイル名リスト(i), コンフィグ)
'Excelのフォルダにテキスト出力
Call テキストファイルに出力(検索パス, 保存ファイル名, Join(結果, vbCrLf))
Next
'テキストファイルを起動
End Sub
Function ファイルリスト取得(検索フォルダ)
Dim FSO, ファイルオブジェクト As Object
Set FSO = CreateObject("Scripting.FileSystemObject")

Dim ファイル一覧() As Variant, ループカウンタ As Long
ループカウンタ = 0
For Each ファイルオブジェクト In FSO.GetFolder(検索フォルダ).Files
If ファイルオブジェクト.Name Like "*.txt*" Or _
ファイルオブジェクト.Name Like "*.log*" Then
ReDim Preserve ファイル一覧(ループカウンタ)
ファイル一覧(ループカウンタ) = ファイルオブジェクト.Name
ループカウンタ = ループカウンタ + 1
End If
Next
ファイルリスト取得 = ファイル一覧
End Function
Function ファイルパス取得(パス, ファイル名)
Set FSO = CreateObject("Scripting.FileSystemObject")

For Each ファイル In FSO.GetFolder(パス).Files
If ファイル.Name Like ファイル名 Then
ファイルパス取得 = ファイル.Path
End If
Next
End Function
Function ファイルの内容を配列へ格納(ファイルパス)
Set FSO = CreateObject("Scripting.FileSystemObject")
Set テキストファイル = FSO.OpenTextFile(ファイルパス)
ファイルの内容を配列へ格納 = Split(テキストファイル.ReadAll, vbLf)
テキストファイル.Close
End Function
Function テキストファイルに出力(フォルダパス, ファイル名, データ)
Set FSO = CreateObject("Scripting.FileSystemObject")
出力フルパス = FSO.BuildPath(フォルダパス, ファイル名)
Set テキストファイル = FSO.OpenTextFile(出力フルパス, 8, True)

テキストファイル.Write (データ)
テキストファイル.Close
End Function
Function 機能抽出(ファイル名, コンフィグ)
機能名 = Array("", _
"リンクアグリゲーション", _
"VLAN         ", _
"送信先NAT       ", _
"送信元NAT       ", _
"アクセス制御ルール  ", _
"アクセス制御マップ  ", _
"アノマリ型IPS    ", _
"シグネチャ型IPS   ", _
"帯域制御       ", _
"サーバ負荷分散    ", _
"SSLアクセラレーター ", _
"リンク負荷分散    ", _
"装置冗長化      ", _
"LAN二重化      ")
検索文字 = Array("", _
"channel-group", _
"vlan-link", _
"dst-na", _
"src-na", _
"rule access", _
"access-map", _
"rule protect", _
"ips", _
"qos-flow", _
"slb-rule", _
"rule ssl-accel server", _
"wan-link", _
"cluster id", _
"bnd-link")
Dim 結果(16)
結果(0) = "「" & ファイル名 & "」の機能"
For i = 1 To UBound(結果) - 2
結果(i) = IIf(UBound(Filter(コンフィグ, 検索文字(i))) > 0, 機能名(i) & ":有", 機能名(i) & ":無")
Next
機能抽出 = 結果
End Function

コピーが出来たら一度Excelの拡張子を.xlsmで保存して、マクロを実行してみてください。

 

VBAはどうやって覚える?

プログラムのコードが読めないと、参考にしているコードの理解や自分でプログラムを書くときに時間がかかってしまいます。
そんな時は基礎から学ぶと応用もできるようになり自分の作りたいプログラムがスムーズに作れるようになります。

無料でやるならネット上の学習サイトを参考にするといいです。
こちらはVBAの基礎から説明している無料のWEBサイトになります。

>>基礎から学べるWEBサイトを見てみる


過去にネットでの学習でつまずいた方には専門書をオススメします。
本なら基礎から学べる事はもちろん、読者視点で分かりやすい解説になっています。
一人で集中してコツコツ進めたい方は書籍を試してください。



本を読んでもわからない所が多すぎたり、誰かに質問したい場合はオンラインスクールを見てみましょう。
カウンセリングから目的に応じた学習プランと教材を提供してくれるので、プログラミングの敷居がとても低くなります。
誰かに相談できるのは心強いです。

>>オンラインスクールを無料体験で始める


スポンサーリンク

まとめ

マクロを使うことでIPCOMのコンフィグから機能を一覧で見れるようになりました。
新人の方でコンフィグを読み込もうと思っても、どこから見たらいいか分からない場合は参考になると思います。

通常時やトラブル発生時、どちらの状態をチェックするのにも動作している機能は把握しておくべきなので、一度実行して確認しておきましょう。

最後まで読んで頂き、ありがとうございます。

「この記事が参考になった」「お礼でコーヒー代をプレゼントしよう」という方がいましたらチップ(15円〜)をお願いいたします。

Amazonギフト券- Eメールタイプ - Amazonベーシック

メールのあて先は 「mizusibuki8080@gmail.com」です。
※上記のアドレスは投げ銭受け取り専用です。他のメールは受け取れない設定にしてあるのでご注意ください。

作業を自動化する
ネットワークエンジニアになった人
タイトルとURLをコピーしました