SlideShare una empresa de Scribd logo
1 de 16
Descargar para leer sin conexión
@nlog2n2
Sekiguchi Toshihiro
SSIDとパスワードを生成し、


QRコードにして Slack にぶん投げる
今日話すこと
無線LANのSSIDとパスワードの更新が面倒だったので、


Pythonでその辺の自動化を実装した話
去年、Qiitaに投稿したやつを話します


https://qiita.com/nlog2n2/items/355595d7c23298a86970
出来上がったもの
こんな感じで iPhone で Slack の QR コードを読み取ると、SSIDとパスワードを自動で設定してくれる。


個人的には未完成で本当は netmiko , Ansible と組み合わせて使うつもりだった。印刷もしたかった... :(
毎月、ゲスト用のSSIDとパスワードを変更するのは面倒すぎる
事前準備( Slack bot の設定 )
• Slackチャンネル開設
• AppでBotsのアプリケーションを追加
• ボットのユーザー名記載し、ボットインテグレーションを追加
• インテグレーションの設定でAPIトークンを取得
QRコード発行までの流れ
1. 初期設定
2. SSIDとパスワードの文字列生成
3. SSIDとパスワードのQRコード生成
4. SSIDとパスワードの文字列画像を生成
5. QRコードと文字列画像を結合
6. 画像をファイルとして保存
7. 作成したSSID・パスワード文字列と画像を slack に投げる
Code
• 初期設定部分 • 解説が必要そうなモジュール
• secrets:乱数を生成する
• qrcode:QRコードを生成する
• PIL:作成されたQRコードと文字列の画像を合体させる
• requests, json:Slackに POST で送信する
• 設定項目
• CONPANY_NAME = 'SSID の先頭の文字列を入力します'
• ENCRYPTION_METHOD = '無線 LAN の暗号化方式を入力します'
• SLACK_TOKEN = 'QRコードを投下する Slack に投下するためのトークンを入力します'
• SLACK_CHANNEL = 'QRコードを投下する Slack のチャンネルを指定します'
• FONT_PATH = 'CentOS 上にあるフォントの位置を指定します'
Code
• SSIDとパスワードの文字列生成
• SSIDとパスワードのQRコード生成
• SSIDとパスワードの文字列画像を生成
• QRコードと文字列画像を結合
• 画像をファイルとして保存
• 作成したSSID・パスワード文字列と画
像を slack に投げる
SSIDとパスワードの文字列生成
SSIDとパスワードのQRコード生成
SSIDとパスワードの文字列画像を生成
QRコードと文字列画像を結合
画像をファイルとして保存
作成した SSID・パスワード文字列と画像を slack に投げる
Code
GUEST-2020-01 というSSID を作成
作成したもの
SSID:GUEST-2020-01
パスワード:HjsXvIQQvxsXwEOk
WIFI 接続情報:WIFI:T:WPS;S:GUEST-2020-01;P:HjsXvIQQvxsXwEOk;;
配列:[ 'SSID:GUEST-2020-01','Password:HjsXvIQQvxsXwEOk;' ]
Code
[a-z][A-Z]のランダムな文字列取り出し
指定された文字列長でを結合する
作成したもの
SSID:GUEST-2020-01
パスワード:HjsXvIQQvxsXwEOk
WIFI 接続情報:WIFI:T:WPS;S:GUEST-2020-01;P:HjsXvIQQvxsXwEOk;;
配列:[ 'SSID:GUEST-2020-01','Password:HjsXvIQQvxsXwEOk;' ]
Code
WIFI:T:無線LANの暗号化方式;S:SSID;P;パスワード;; の文字列を作成
SSIDとパスワードの文字列配列を作成 ↑無線LAN接続情報
作成したもの
SSID:GUEST-2020-01
パスワード:HjsXvIQQvxsXwEOk
WIFI 接続情報:WIFI:T:WPA;S:GUEST-2020-01;P:HjsXvIQQvxsXwEOk;;
配列:[ 'SSID:GUEST-2020-01','Password:HjsXvIQQvxsXwEOk;' ]
Code
無線LAN接続情報をもとにQRコード作成
作成したもの
SSID:GUEST-2020-01
パスワード:HjsXvIQQvxsXwEOk
WIFI 接続情報:WIFI:T:WPS;S:GUEST-2020-01;P:HjsXvIQQvxsXwEOk;;
配列:[ 'SSID:GUEST-2020-01','Password:HjsXvIQQvxsXwEOk;' ]
Code
無線LAN接続情報の文字列を画像として生成
作成したもの
SSID:GUEST-2020-01
パスワード:HjsXvIQQvxsXwEOk
WIFI 接続情報:WIFI:T:WPS;S:GUEST-2020-01;P:HjsXvIQQvxsXwEOk;;
配列:[ 'SSID:GUEST-2020-01','Password:HjsXvIQQvxsXwEOk;' ]
Code
QRコードと無線LAN情報の画像を結合する
Code
作った画像をファイルに保存
Code
slack 宛へ画像と文字列を送信する
出来上がったもの
こんな感じで iPhone で Slack の QR コードを読み取ると、SSIDとパスワードを自動で設定してくれる。


個人的には未完成で本当は netmiko , Ansible と組み合わせて使うつもりだった。印刷もしたかった... :(
毎月、ゲスト用のSSIDとパスワードを変更するのは面倒すぎる

Más contenido relacionado

La actualidad más candente

サーバサイドNodeの使い道
サーバサイドNodeの使い道サーバサイドNodeの使い道
サーバサイドNodeの使い道pospome
 
Uuidはどこまでuuidか試してみた
Uuidはどこまでuuidか試してみたUuidはどこまでuuidか試してみた
Uuidはどこまでuuidか試してみたYu Yamada
 
Node.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしようNode.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしようYuusuke Takeuchi
 
Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築AimingStudy
 
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −Kohei Asai
 
テキスト書き起こし&読み上げLINEボットを作ってみた
テキスト書き起こし&読み上げLINEボットを作ってみたテキスト書き起こし&読み上げLINEボットを作ってみた
テキスト書き起こし&読み上げLINEボットを作ってみた典子 松本
 
altJSの選び方
altJSの選び方altJSの選び方
altJSの選び方terurou
 
Node.jsに縁のない職場でnode.jsを使い始める戦術
Node.jsに縁のない職場でnode.jsを使い始める戦術Node.jsに縁のない職場でnode.jsを使い始める戦術
Node.jsに縁のない職場でnode.jsを使い始める戦術Isamu Suzuki
 
ノーコーディングでAIサービスを使ってみた話
ノーコーディングでAIサービスを使ってみた話ノーコーディングでAIサービスを使ってみた話
ノーコーディングでAIサービスを使ってみた話典子 松本
 
2016 Android × Scala @ScalaMatsuri2016
2016 Android × Scala @ScalaMatsuri20162016 Android × Scala @ScalaMatsuri2016
2016 Android × Scala @ScalaMatsuri2016Yasuyuki Sugitani
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法についてYuji Otani
 
Riot.jsとフォームのデータバインディング
Riot.jsとフォームのデータバインディングRiot.jsとフォームのデータバインディング
Riot.jsとフォームのデータバインディングKeisuke Imai
 
Designer's Design Talk「デザインの基礎」
Designer's Design Talk「デザインの基礎」Designer's Design Talk「デザインの基礎」
Designer's Design Talk「デザインの基礎」典子 松本
 
最近のフロントエンドツールの紹介
最近のフロントエンドツールの紹介最近のフロントエンドツールの紹介
最近のフロントエンドツールの紹介Ryo Iinuma
 
Html5とアクセシビリティ
Html5とアクセシビリティHtml5とアクセシビリティ
Html5とアクセシビリティMasakazu Muraoka
 
Smart fxでのsocketio活用事例
Smart fxでのsocketio活用事例Smart fxでのsocketio活用事例
Smart fxでのsocketio活用事例剛志 森田
 
ニューノーマルな働き方!?Teams投稿をセンチメント分析!
ニューノーマルな働き方!?Teams投稿をセンチメント分析!ニューノーマルな働き方!?Teams投稿をセンチメント分析!
ニューノーマルな働き方!?Teams投稿をセンチメント分析!Tsukasa Kato
 
「Windows Azure」 の Mobile Services
「Windows Azure」 の Mobile Services「Windows Azure」 の Mobile Services
「Windows Azure」 の Mobile Servicessnicker_jp
 
ソーシャルゲーム開発における運用とそのツール
ソーシャルゲーム開発における運用とそのツールソーシャルゲーム開発における運用とそのツール
ソーシャルゲーム開発における運用とそのツールYoshiaki Sugimoto
 

La actualidad más candente (20)

サーバサイドNodeの使い道
サーバサイドNodeの使い道サーバサイドNodeの使い道
サーバサイドNodeの使い道
 
Uuidはどこまでuuidか試してみた
Uuidはどこまでuuidか試してみたUuidはどこまでuuidか試してみた
Uuidはどこまでuuidか試してみた
 
Node.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしようNode.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしよう
 
Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築
 
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
 
テキスト書き起こし&読み上げLINEボットを作ってみた
テキスト書き起こし&読み上げLINEボットを作ってみたテキスト書き起こし&読み上げLINEボットを作ってみた
テキスト書き起こし&読み上げLINEボットを作ってみた
 
altJSの選び方
altJSの選び方altJSの選び方
altJSの選び方
 
Node.js Hands-On
Node.js Hands-OnNode.js Hands-On
Node.js Hands-On
 
Node.jsに縁のない職場でnode.jsを使い始める戦術
Node.jsに縁のない職場でnode.jsを使い始める戦術Node.jsに縁のない職場でnode.jsを使い始める戦術
Node.jsに縁のない職場でnode.jsを使い始める戦術
 
ノーコーディングでAIサービスを使ってみた話
ノーコーディングでAIサービスを使ってみた話ノーコーディングでAIサービスを使ってみた話
ノーコーディングでAIサービスを使ってみた話
 
2016 Android × Scala @ScalaMatsuri2016
2016 Android × Scala @ScalaMatsuri20162016 Android × Scala @ScalaMatsuri2016
2016 Android × Scala @ScalaMatsuri2016
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
Riot.jsとフォームのデータバインディング
Riot.jsとフォームのデータバインディングRiot.jsとフォームのデータバインディング
Riot.jsとフォームのデータバインディング
 
Designer's Design Talk「デザインの基礎」
Designer's Design Talk「デザインの基礎」Designer's Design Talk「デザインの基礎」
Designer's Design Talk「デザインの基礎」
 
最近のフロントエンドツールの紹介
最近のフロントエンドツールの紹介最近のフロントエンドツールの紹介
最近のフロントエンドツールの紹介
 
Html5とアクセシビリティ
Html5とアクセシビリティHtml5とアクセシビリティ
Html5とアクセシビリティ
 
Smart fxでのsocketio活用事例
Smart fxでのsocketio活用事例Smart fxでのsocketio活用事例
Smart fxでのsocketio活用事例
 
ニューノーマルな働き方!?Teams投稿をセンチメント分析!
ニューノーマルな働き方!?Teams投稿をセンチメント分析!ニューノーマルな働き方!?Teams投稿をセンチメント分析!
ニューノーマルな働き方!?Teams投稿をセンチメント分析!
 
「Windows Azure」 の Mobile Services
「Windows Azure」 の Mobile Services「Windows Azure」 の Mobile Services
「Windows Azure」 の Mobile Services
 
ソーシャルゲーム開発における運用とそのツール
ソーシャルゲーム開発における運用とそのツールソーシャルゲーム開発における運用とそのツール
ソーシャルゲーム開発における運用とそのツール
 

Similar a Python Tip LT 20210805 nlog2n2

IoT家電を作ってみて気がついたUX
IoT家電を作ってみて気がついたUXIoT家電を作ってみて気がついたUX
IoT家電を作ってみて気がついたUXTakuya Noaki
 
160531 IoT LT #15 @ 日本IBM
160531 IoT LT #15 @ 日本IBM160531 IoT LT #15 @ 日本IBM
160531 IoT LT #15 @ 日本IBMToshiki Tsuboi
 
FIDOとWebAuthnとCTAPのはなし
FIDOとWebAuthnとCTAPのはなしFIDOとWebAuthnとCTAPのはなし
FIDOとWebAuthnとCTAPのはなしSatoshiSuzuki23
 
Generating unique id numbers in Azure
Generating unique id numbers in AzureGenerating unique id numbers in Azure
Generating unique id numbers in AzureTakekazu Omi
 
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...典子 松本
 
VyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 BridgeVyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 BridgeKLab Inc. / Tech
 
【de:code 2020】 ハンズオンで学ぶ AI ~ Bot Framework Composer + QnA Maker / Custom Visi...
【de:code 2020】 ハンズオンで学ぶ AI ~ Bot Framework Composer + QnA Maker / Custom Visi...【de:code 2020】 ハンズオンで学ぶ AI ~ Bot Framework Composer + QnA Maker / Custom Visi...
【de:code 2020】 ハンズオンで学ぶ AI ~ Bot Framework Composer + QnA Maker / Custom Visi...日本マイクロソフト株式会社
 
BLEラジコン基板でIoTしてみた
BLEラジコン基板でIoTしてみたBLEラジコン基板でIoTしてみた
BLEラジコン基板でIoTしてみたBizan Nishimura
 
Rubyでオリジナルプログラムをつくろう
RubyでオリジナルプログラムをつくろうRubyでオリジナルプログラムをつくろう
RubyでオリジナルプログラムをつくろうK K
 
GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話mdome
 
チーム開発にSwiftLintを導入してみた・詳細版
チーム開発にSwiftLintを導入してみた・詳細版チーム開発にSwiftLintを導入してみた・詳細版
チーム開発にSwiftLintを導入してみた・詳細版Ikada Kaori
 
Gradle PluginとTwitterとズン ドコ キ・ヨ・シ!
Gradle PluginとTwitterとズン ドコ キ・ヨ・シ!Gradle PluginとTwitterとズン ドコ キ・ヨ・シ!
Gradle PluginとTwitterとズン ドコ キ・ヨ・シ!Shinobu Okano
 
観たいセッションがかぶった!なんて心配ご無用。今年は、興味の赴くままにあれもこれも♪
観たいセッションがかぶった!なんて心配ご無用。今年は、興味の赴くままにあれもこれも♪観たいセッションがかぶった!なんて心配ご無用。今年は、興味の赴くままにあれもこれも♪
観たいセッションがかぶった!なんて心配ご無用。今年は、興味の赴くままにあれもこれも♪Kazumi IWANAGA
 
Iotlt 28 HoloLensに日本語聞いてもらいたい
Iotlt 28 HoloLensに日本語聞いてもらいたいIotlt 28 HoloLensに日本語聞いてもらいたい
Iotlt 28 HoloLensに日本語聞いてもらいたいMasaki Yamamoto
 
CIのビルドを通知する仕組みをAndroidとFirestoreで作った話
CIのビルドを通知する仕組みをAndroidとFirestoreで作った話CIのビルドを通知する仕組みをAndroidとFirestoreで作った話
CIのビルドを通知する仕組みをAndroidとFirestoreで作った話Takao Sumitomo
 
de:code 夏まつり クイズクライアント作ったよ!
de:code 夏まつり クイズクライアント作ったよ!de:code 夏まつり クイズクライアント作ったよ!
de:code 夏まつり クイズクライアント作ったよ!Kazumi IWANAGA
 
垣根のないモノ作り!
垣根のないモノ作り!垣根のないモノ作り!
垣根のないモノ作り!Yuka Tokuyama
 
20161208 Classmethod Codenize Tools
20161208 Classmethod Codenize Tools20161208 Classmethod Codenize Tools
20161208 Classmethod Codenize ToolsKazuki Ueki
 

Similar a Python Tip LT 20210805 nlog2n2 (20)

IoT家電を作ってみて気がついたUX
IoT家電を作ってみて気がついたUXIoT家電を作ってみて気がついたUX
IoT家電を作ってみて気がついたUX
 
160531 IoT LT #15 @ 日本IBM
160531 IoT LT #15 @ 日本IBM160531 IoT LT #15 @ 日本IBM
160531 IoT LT #15 @ 日本IBM
 
FIDOとWebAuthnとCTAPのはなし
FIDOとWebAuthnとCTAPのはなしFIDOとWebAuthnとCTAPのはなし
FIDOとWebAuthnとCTAPのはなし
 
Generating unique id numbers in Azure
Generating unique id numbers in AzureGenerating unique id numbers in Azure
Generating unique id numbers in Azure
 
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
 
IoT ChatOps #IoTLT
IoT ChatOps #IoTLTIoT ChatOps #IoTLT
IoT ChatOps #IoTLT
 
VyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 BridgeVyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 Bridge
 
【de:code 2020】 ハンズオンで学ぶ AI ~ Bot Framework Composer + QnA Maker / Custom Visi...
【de:code 2020】 ハンズオンで学ぶ AI ~ Bot Framework Composer + QnA Maker / Custom Visi...【de:code 2020】 ハンズオンで学ぶ AI ~ Bot Framework Composer + QnA Maker / Custom Visi...
【de:code 2020】 ハンズオンで学ぶ AI ~ Bot Framework Composer + QnA Maker / Custom Visi...
 
BLEラジコン基板でIoTしてみた
BLEラジコン基板でIoTしてみたBLEラジコン基板でIoTしてみた
BLEラジコン基板でIoTしてみた
 
Rubyでオリジナルプログラムをつくろう
RubyでオリジナルプログラムをつくろうRubyでオリジナルプログラムをつくろう
Rubyでオリジナルプログラムをつくろう
 
GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話
 
チーム開発にSwiftLintを導入してみた・詳細版
チーム開発にSwiftLintを導入してみた・詳細版チーム開発にSwiftLintを導入してみた・詳細版
チーム開発にSwiftLintを導入してみた・詳細版
 
Gradle PluginとTwitterとズン ドコ キ・ヨ・シ!
Gradle PluginとTwitterとズン ドコ キ・ヨ・シ!Gradle PluginとTwitterとズン ドコ キ・ヨ・シ!
Gradle PluginとTwitterとズン ドコ キ・ヨ・シ!
 
観たいセッションがかぶった!なんて心配ご無用。今年は、興味の赴くままにあれもこれも♪
観たいセッションがかぶった!なんて心配ご無用。今年は、興味の赴くままにあれもこれも♪観たいセッションがかぶった!なんて心配ご無用。今年は、興味の赴くままにあれもこれも♪
観たいセッションがかぶった!なんて心配ご無用。今年は、興味の赴くままにあれもこれも♪
 
Iotlt 28 HoloLensに日本語聞いてもらいたい
Iotlt 28 HoloLensに日本語聞いてもらいたいIotlt 28 HoloLensに日本語聞いてもらいたい
Iotlt 28 HoloLensに日本語聞いてもらいたい
 
CIのビルドを通知する仕組みをAndroidとFirestoreで作った話
CIのビルドを通知する仕組みをAndroidとFirestoreで作った話CIのビルドを通知する仕組みをAndroidとFirestoreで作った話
CIのビルドを通知する仕組みをAndroidとFirestoreで作った話
 
de:code 夏まつり クイズクライアント作ったよ!
de:code 夏まつり クイズクライアント作ったよ!de:code 夏まつり クイズクライアント作ったよ!
de:code 夏まつり クイズクライアント作ったよ!
 
垣根のないモノ作り!
垣根のないモノ作り!垣根のないモノ作り!
垣根のないモノ作り!
 
20181220 pcba3days
20181220 pcba3days20181220 pcba3days
20181220 pcba3days
 
20161208 Classmethod Codenize Tools
20161208 Classmethod Codenize Tools20161208 Classmethod Codenize Tools
20161208 Classmethod Codenize Tools
 

Python Tip LT 20210805 nlog2n2