Pythonはネットワーク自動化に非常に有用な言語であり、その中でもtelnetlib
ライブラリは特に注目に値します。このライブラリはPythonの標準ライブラリに含まれており、Telnetプロトコルをサポートしています。Telnetは、ネットワーク機器やサーバーと対話的に通信するためのプロトコルの一つです。
以下に、telnetlib
ライブラリを使用してTelnetセッションを開始し、コマンドを送信する基本的な例を示します。
import telnetlib
# Telnet接続先の情報
host = "192.168.10.254"
port = 23 # デフォルトのTelnetポート番号
# Telnetセッションの開始
tn = telnetlib.Telnet(host, port)
# ユーザー名とパスワードの送信
tn.read_until(b"Password: ")
tn.write(b"\\n")
tn.read_until(b"Username: ")
tn.write(b"admin\\n")
tn.read_until(b"Password: ")
tn.write(b"password\\n")
# コマンドの送信
tn.write(b"show config\\n")
# コマンドの結果を取得
output = tn.read_until(b">", timeout=10).decode("utf-8")
# 結果の表示
print(output)
# Telnetセッションの終了
tn.close()
このコードは、ヤマハのルータRTX1210に接続して、情報を取得しています。
しかし、telnetlib
ライブラリはPython3.11から非推奨となり、Python3.13から正式に削除される予定です。そのため、将来的なアップデートに備えて、telnetlib3
ライブラリかサードパーティ製ライブラリへの移行も検討しておくとよいでしょう。
以上がPythonとtelnetlib
を用いたネットワーク自動化の基本的な手法です。これを応用し、さまざまなネットワーク機器の設定や確認の自動化を行うことが可能です。ネットワーク運用の効率化にぜひ活用してみてください。