SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Downloaden Sie, um offline zu lesen
Python telnetlibとその応用例
@tkshnt
2013/10/31 #ssmjp
Python telnetlib
• Pythonの標準ライブラリに含まれる
• 接続先IPアドレス、ユーザ名、パスワードを引
数にコネクト
• 入力コマンドを並べると、順に実行
• 出力結果をファイルに落とす
ConfigParser
• Pythonの標準ライブラリ
• 設定ファイルに書いてある値を読み込む
• 設定ファイルのフォーマットはwindowsのINI
ファイルと同じ
[entry]
var=value
• 複数のエントリを設定できる
例
• Python telnetlibにより、外部からのログイン
数を取得
• ConfigParserの利用で、アカウントとパスワー
ドの管理
みずいろの箱
• 認証数を取得しグラフ化したい
→MIBにあるけどNot accessible!
→telnetで同じ値は参照できる
→Telnetのログを取得して整形すればいい!!
• 最初はシェルスクリプトで作成、保守が面倒
→Python telnetlib
• コマンドの出力結果が1画面で止まるので、ス
イッチのコマンドで最後まで流すようにする
• conf.iniにログインユーザとパスワードを記述
ソースコード
#!/usr/bin/python
import sys
import telnetlib
import ConfigParser
CONF_FILE = "conf.ini"
HOST = "192.168.100.10"
conf = ConfigParser.SafeConfigParser()
conf.read(CONF_FILE)
section_name = “sw2"
user = conf.get(section_name, "user")
password = conf.get(section_name, "password")
tn = telnetlib.Telnet(HOST)
tn.read_until("login: ")
tn.write(user + "¥n")
if password:
tn.read_until("Password:")
tn.write(password + "¥n")
tn.write("show access-defender client¥n")
tn.write("0¥n")
tn.write("exit¥n")
f = file('log4', 'w')
f.write(tn.read_all())
f.close()

[sw2]
user=admin
password=admin2
黒い回文の箱
•
•
•
•

普通にlsが使える!
ページャーのオン・オフコマンドを使う
ログイン後、ページャーをオフ
コマンドを実行後に、ページャーをオンに戻す
ソースコード
#!/usr/bin/python
import sys
import telnetlib
import ConfigParser
HOST = "192.168.100.1"
CONF_FILE = "conf.ini"
conf = ConfigParser.SafeConfigParser()
conf.read(CONF_FILE)
section_name = “sw3"
user = conf.get(section_name, "user")
password = conf.get(section_name, "password")

tn = telnetlib.Telnet(HOST)
tn.read_until("login: ")
tn.write(user + "¥n")
if password:
tn.read_until("Password:")
tn.write(password + "¥n")
tn.write("set terminal pager disable¥n")
tn.write("show mac-address-table vlan 31¥n")
tn.write("set terminal pager¥n")
tn.write("exit¥n")
f = file('log2', 'w')
f.write(tn.read_all())
f.close()

[sw3]
user=admin
password=admin3
[sw2]
user=admin
password=admin2
アクセスポイント
• Syslog取得のため
• SNMPはサポートされているけど、動作が謎
• 管理サーバやコントローラが無いので、個別
にコンソールにログイン
• アクセスポイントのIPアドレスを引数にして実
行
ソースコード
#!/usr/bin/python
import sys
import telnetlib
import datetime
import ConfigParser
CONF_FILE = "conf.ini"
HOST = raw_input("Remote Host: ")
conf = ConfigParser.SafeConfigParser()
conf.read(CONF_FILE)
section_name = “ap1"
user = conf.get(section_name, "user")
password = conf.get(section_name, "password")
# main name of filename
fmain = "log"
# get execution timestamp
d = datetime.datetime.today()
exectime = d.strftime("%Y%m%d%H%M")
tn = telnetlib.Telnet(HOST)
tn.read_until("login: ")
tn.write(user + "¥n")
if password:
tn.read_until("Password: ")
tn.write(password + "¥n")
tn.write("get syslog¥n")
tn.write("exit¥n")
f = open(HOST + "." + fmain + "." + exectime, 'w')
f.write(tn.read_all())
f.close()

[sw3]
user=admin
password=admin3
[sw2]
user=admin
password=admin2
[ap1]
user=admin
password=admin1
まとめ
• Python telnetlibの実例
– 決まった作業を自動化するのに使える

• ConfigParser
– 生パスワードをスクリプトに埋め込むのを回避
– 別ファイルから読み込む
– 理想は、暗号化して格納、実行時に復号

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (9)

Good Parts of PHP and the UNIX Philosophy
Good Parts of PHP and the UNIX PhilosophyGood Parts of PHP and the UNIX Philosophy
Good Parts of PHP and the UNIX Philosophy
 
Google Developer Day 2010 Japan: プログラミング言語 Go (鵜飼 文敏)
Google Developer Day 2010 Japan: プログラミング言語 Go (鵜飼 文敏)Google Developer Day 2010 Japan: プログラミング言語 Go (鵜飼 文敏)
Google Developer Day 2010 Japan: プログラミング言語 Go (鵜飼 文敏)
 
これだけMakefile (Basics of makefile)
これだけMakefile (Basics of makefile)これだけMakefile (Basics of makefile)
これだけMakefile (Basics of makefile)
 
20190530-DesignOneGo01
20190530-DesignOneGo0120190530-DesignOneGo01
20190530-DesignOneGo01
 
3分でサーバオペレーションコマンドを作る技術
3分でサーバオペレーションコマンドを作る技術3分でサーバオペレーションコマンドを作る技術
3分でサーバオペレーションコマンドを作る技術
 
C#勉強会
C#勉強会C#勉強会
C#勉強会
 
Unix3
Unix3Unix3
Unix3
 
ネットワーク第3回目
ネットワーク第3回目ネットワーク第3回目
ネットワーク第3回目
 
シェルスクリプトを極める
シェルスクリプトを極めるシェルスクリプトを極める
シェルスクリプトを極める
 

Ähnlich wie Ssmjp20131031

10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用
Nobuaki Oshiro
 
Secure scheme script suite
Secure scheme script suiteSecure scheme script suite
Secure scheme script suite
Tod Morita
 
Secure Scheme Script Suite
Secure Scheme Script SuiteSecure Scheme Script Suite
Secure Scheme Script Suite
shibuya_lisp
 
Aristeaのコード補完
Aristeaのコード補完Aristeaのコード補完
Aristeaのコード補完
Yutaka Tsumori
 
Hello World Python featuring GAE
Hello World Python featuring GAEHello World Python featuring GAE
Hello World Python featuring GAE
Maito Kuwahara
 

Ähnlich wie Ssmjp20131031 (20)

プログラミング .NET Framework 第4版
プログラミング .NET Framework 第4版プログラミング .NET Framework 第4版
プログラミング .NET Framework 第4版
 
第1回python勉強会
第1回python勉強会第1回python勉強会
第1回python勉強会
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
 
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 090510分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905
 
Sphinx/reST
Sphinx/reSTSphinx/reST
Sphinx/reST
 
10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 101010分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010
 
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1
 
Pelicanによる www.python.jpの構築
Pelicanによる www.python.jpの構築Pelicanによる www.python.jpの構築
Pelicanによる www.python.jpの構築
 
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
 
10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用
 
Secure scheme script suite
Secure scheme script suiteSecure scheme script suite
Secure scheme script suite
 
Secure Scheme Script Suite
Secure Scheme Script SuiteSecure Scheme Script Suite
Secure Scheme Script Suite
 
Introduction of Python
Introduction of PythonIntroduction of Python
Introduction of Python
 
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
 
Aristeaのコード補完
Aristeaのコード補完Aristeaのコード補完
Aristeaのコード補完
 
Django_fukuoka
Django_fukuokaDjango_fukuoka
Django_fukuoka
 
Tfug kansai vol2
Tfug kansai vol2Tfug kansai vol2
Tfug kansai vol2
 
Django 1.5 における効果的な MTV 設計 & ネイティブApp
Django 1.5 における効果的な MTV 設計 & ネイティブAppDjango 1.5 における効果的な MTV 設計 & ネイティブApp
Django 1.5 における効果的な MTV 設計 & ネイティブApp
 
Django_Fukuoka
Django_FukuokaDjango_Fukuoka
Django_Fukuoka
 
Hello World Python featuring GAE
Hello World Python featuring GAEHello World Python featuring GAE
Hello World Python featuring GAE
 

Mehr von Takashi Naito (11)

ZodiacGX Quick Hack
ZodiacGX Quick HackZodiacGX Quick Hack
ZodiacGX Quick Hack
 
Zodiacgx
ZodiacgxZodiacgx
Zodiacgx
 
仮想スイッチをフェイルオーバーさせてみる予定
仮想スイッチをフェイルオーバーさせてみる予定仮想スイッチをフェイルオーバーさせてみる予定
仮想スイッチをフェイルオーバーさせてみる予定
 
OpenvSwitchのモニタリングと管理機能
OpenvSwitchのモニタリングと管理機能OpenvSwitchのモニタリングと管理機能
OpenvSwitchのモニタリングと管理機能
 
無線LANコントローラーからSDNへの移行可能性と拡張性の模索
無線LANコントローラーからSDNへの移行可能性と拡張性の模索無線LANコントローラーからSDNへの移行可能性と拡張性の模索
無線LANコントローラーからSDNへの移行可能性と拡張性の模索
 
Gentoo linux OSC 2015 Spring
Gentoo linux OSC 2015 SpringGentoo linux OSC 2015 Spring
Gentoo linux OSC 2015 Spring
 
OpenvSwitchの落とし穴
OpenvSwitchの落とし穴OpenvSwitchの落とし穴
OpenvSwitchの落とし穴
 
Ssmjp20140328
Ssmjp20140328Ssmjp20140328
Ssmjp20140328
 
Ssmjp20131226
Ssmjp20131226Ssmjp20131226
Ssmjp20131226
 
Rpi users201312
Rpi users201312Rpi users201312
Rpi users201312
 
Ssmjp20130925
Ssmjp20130925Ssmjp20130925
Ssmjp20130925
 

Kürzlich hochgeladen

Kürzlich hochgeladen (11)

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 

Ssmjp20131031