TeraTermマクロを実行している端末のIPアドレスを取得する方法と活用方法について紹介します。端末のIPアドレスが必要な場合、IPアドレスをTeraTermマクロへハードコーディングするよりも自動的に取得させる方が、より汎用性を高める事ができるようになります。
IPアドレス取得方法
TeraTermマクロで端末のIPアドレスを取得するためにはgetipv4addrコマンドを使います。次のようにして使います。
getipv4addr <string array> <num>
パラメータ
- 文字列配列 <string array>
- IPアドレスを格納する文字型配列。
- 整数型変数 <num>
- IPアドレスの個数を格納する整数型変数。IPアドレスが存在しない場合、0が格納される。
返り値
- システム変数 <result>
- IPアドレスの取得に成功した場合、1が格納される。
IPアドレスの個数が<string array>の要素数より大きい場合、0が格納される。
IPアドレスの取得に失敗した場合、-1が格納される。
活用方法
最近、わたしが活用した例では、CheckPoint社製のFWからバックアップファイルを自動的に取得するマクロを書いたときです。この製品はコマンドライン操作でバックアップを実行後、FTPサーバーへアップロードさせる事ができます。作業端末でFTPサーバーを立ち上げておき、ステータス取得からバックアップまでの一連の流れを自動化しています。
他にも、Cisco社製のスイッチやルーターでftpサーバーやtftpサーバーのIPアドレスを指定する事がありますが、そのIPアドレスがマクロを実行している端末である場合など、活用できます。
サンプルコード
サンプルコードを掲載します。これは、TeraTermマクロを実行している端末のIPアドレスを取得して配列に格納し、リストボックスでユーザーにIPアドレスを選択させるシンプルなものです。
; IPアドレスを格納するための配列 ; 要素数は適宜設定 strdim addrs 4 getipv4addr addrs naddrs ; IPアドレスの取得に失敗するとシステム変数resultに-1が格納される if result == -1 then messagebox 'IPアドレスの取得に失敗しました' 'エラー' end endif ; naddrsには取得したアドレス数が格納される ; アドレスが複数ある場合はリストボックスでユーザーにIPアドレスを選ばせる if naddrs == 1 then ipaddr = addrs[0] else listbox 'IPアドレスを選択してください' 'アドレス選択' addrs if result == -1 then end endif ipaddr = addrs[result] endif messagebox ipaddr ipaddr