Python

Python2 + nfcpyで、W525DZのFeliCa Plugを読んでみた

毎年冬になるとつらいのが冷え性です。 今までは身体が冷えてるような気がするから冷え性だろうと思っていました。しかし、「推測するな計測せよ」という言葉を思い出しました。 そこで記録が手軽に残せる体温計を探してみました。すると、NFCでデータを転送…

Python2 + Scapyでマジックパケットを作成し、Wake on LANをしてみた

今まで、遠隔からPCの電源を入れる場合、Wake on LAN 用のツールを使っていました。 Wake-on-LAN - Wikipedia そこで今回、ScapyでWake on LANのマジックパケットを作ってみて、ツールの代替となるかを試してみました。 目次 目次 環境 ネットワーク構成 ネ…

Mac + Python2 + Scapyで、使用中のIPアドレスを探してみた

以前、Windowsにて現在のIPアドレス利用状況を知りたい時は、以下の記事のようにしていました。 Windowsで、使用中のIPアドレスを調査する:Tech TIPS - @IT Scapyを使えばARPパケットだけで同じことができるのではと思い、試してみました。 目次 環境 実装…

IntelliJのremote interpreter方式を使って、Raspbian上のScapyをリモートデバッグしてみた

Raspberry Pi 2 Model BでScapyを書いていると、リモートデバッグしたくなりました。 そこで、IntelliJのremote interpreter方式を使って、Raspbian上のScapyをリモートデバッグしてみた時のメモを残します。 目次 環境 公開鍵を使ったSSHを可能にするよう設…

最新のScapy(2.3.3.dev957)では、Macにpcapやdnetモジュールのインストールが不要っぽい

前回の記事の中で、MacへのScapyのインストールについて触れました。 Mac + Python2 + Scapyで、DHCPサーバを探してみた - メモ的な思考的な 公開後、Twitterにて Scapy works natively on macOS since 2.3.3. There is no need to install pcap and dnet mo…

Mac + Python2 + Scapyで、DHCPサーバを探してみた

Scapyを使ってDHCPサーバを探してみようと、実装方法を調べてみました。 すると、Scapyの公式ドキュメントにあったり、既に実装している方々がいました。 Identifying rogue DHCP servers on your LAN | Usage — Scapy 2.3.3-dev documentation Python(Scap…

Python2 + Scapyで、Raspberry Pi 2 Model B をNAT/NAPTルータ化してみた #router_jisaku

前回・前々回で、Python2 + Scapyで、Raspberry Pi 2 Model B をブリッジ化してみました。 Python2 + Scapyで、Raspberry Pi 2 Model B をブリッジにできるか試してみた #router_jisaku - メモ的な思考的な Scapy + Python2 + I/O多重化・ブロッキングI/O系…

Scapy + Python2 + I/O多重化・ブロッキングI/O系モジュールにて、Raspberry Pi 2 Model Bをブリッジ化する

前回、Scapyの bridge_and_sniff() 関数を使って、Raspberry Pi 2 Model B をブリッジ化してみました。 Python2 + Scapyで、Raspberry Pi 2 Model B をブリッジにできるか試してみた #router_jisaku - メモ的な思考的な ただ、 bridge_and_sniff() 関数を使…

Python2 + Scapyで、Raspberry Pi 2 Model B をブリッジにできるか試してみた #router_jisaku

以前、Windows10 + Scapyを簡単にさわってみました。 Windows10にScapyをインストールする - メモ的な思考的な もう少し詳しくScapyをさわってみたいと思い、何か作ろうと考えました。 作る題材を探していたところ、書籍「ルーター自作でわかるパケットの流…

Mac + IntelliJ IDEA + Python pluginにおける、pycharm-debug.egg のありかについて

IntelliJ IDEA + Python pluginでリモートデバッグをする際、 pycharm-debug.egg pycharm-debug-py3k.egg が必要です。 ただ、どこにあるか分からなかったため、調べた時のメモを残します。 環境 Mac OS X 10.11.6 IntelliJ IDEA 2017.3.1 Python plugin 201…

Python + tweepyにて、Video URLを取得する

TwitterのVideo URLの取得方法を調べる機会がありましたので、メモとして残します。 なお、Twitter用ライブラリは、 tweepy を使います。 目次 環境 tweepyでTwitter APIを操作する ツイートとVideo URLが140文字に収まる場合 ツイートとVideo URLが140文字…

Pythonで、Seleniumのfind_element系メソッドとPageObjectsを試してみた

PythonのSeleniumには find_element_by_xxx() find_elements_by_xxx() find_element() find_elements() などのメソッドが用意されています。 今回は、それらを試してみた時のメモを残します。 なお、途中からSeleniumのPage Objectsパターンが出てきます。 …

Python + pytestにて、pytestに独自のコマンドラインオプションを追加する

Python + pytestにて、コマンドラインオプションを追加して、コマンドラインから値を受け取った時のメモを残します。 目次 環境 pytestのコマンドラインオプションの追加方法 conftest.pyの実装 テストコードの実装 テストの実行 応用:コマンドラインオプシ…

#pyconjp PyCon JP 2017に参加しました

9/8と9/9に、早稲田大学の西早稲田キャンパス63号館で開催された「PyCon JP 2017」に参加しました。 PyCon JP 2017 in Tokyo | Sep 7th – Sep 10th 前回PyCon JPに参加したのは2012年だったようで、5年ぶりの参加でした。 PyCon JP 2012に参加してきました…

「Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版」をBoto3とAnsibleで写経してみた

社内ではAWSが普通に使われているため、常々基礎からきちんと学びたいと考えていました。 そんな中、書籍「Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版」の社内勉強会が開催されることになりました。 Amazon Web Services 基礎からのネ…

Heroku CLI を使わずに、BottleアプリをHerokuへデプロイする

通常、Heroku CLI (以前のHeroku Toolbelt)を使ってHerokuにデプロイしています。 Heroku CLI | Heroku Dev Center ただ、Heroku CLIを使わずにデプロイする方法があるのか気になったため、その方法を調べた時のメモです。 目次 環境 Bottleアプリまわりの作…

Docker + Alpine3.5 + Apache2.4 + Python3.xで、mod_pythonをソースコードからインストールしてみた

以前、Docker + Alpine3.5 + Apache2.4 + Python2.7で、mod_pythonをソースコードからインストールしてみました。 Docker + Alpine3.5 + Apache2.4 + Python2.7で、mod_pythonをソースコードからインストールしてみた - メモ的な思考的な その時はPython2.x…

初めてのOSSへのプルリクとマージ

会社のまわりの人たちが普通にプルリクを送ってるのを見ていいなーと思いつつ、プルリク未体験で過ごしてきました。 そんな中、ようやく初めてのプルリクとマージを体験できたので、メモしておきます。 目次 作成したプルリク 見つけた経緯 プルリクの作成 G…

Docker + Alpine3.5 + Apache2.4 + Python2.7で、mod_pythonをソースコードからインストールしてみた

今までPython3.x & Apache2.4.xを使って、CGIをひと通り試してきました。 次は、CGIを別のものに置き換えてWebアプリケーションを作りたくなりました。 PythonのWebアプリケーションというとWSGIが思い浮かびます。ただ、CGI以降WSGI以前に登場したものを使…

Pythonで、日本語をCookie値へ設定する方法を調べてみた

以前、PythonでCGIのCookieを使ってみました。 Docker + Alpine3.5 + Apache2.4 + Python3.6で、CGIのCookieを使ってみた - メモ的な思考的な その時は日本語をCookie値へ設定する方法が気になっていたものの、深入りしませんでした。 そこで今回、以下を参…

Python + astモジュールを使ってソースコードを解析し、メソッドブロックや関数ブロックの定義行と最終行を取得する

Pythonソースコードを解析して、メソッドブロックや関数ブロックの定義行と最終行を取得することがありました。 Pythonでは標準モジュールのastを使ってソースコードを解析できるため、試した時のメモです。 32.2. ast — 抽象構文木 — Python 3.6.1 ドキュメ…

Docker + Alpine3.5 + Apache2.4 + Python3.6で、CGIのCookieを使ってみた

前回、CGIのリダイレクトを使ってみました。 Docker + Alpine3.5 + Apache2.4 + Python3.6で、CGIのリダイレクトを使ってみた - メモ的な思考的な 今回はCGIのCookieを使ってみます。 目次 環境 PythonのCookieまわりの標準モジュールについて CookieのExpir…

Docker + Alpine3.5 + Apache2.4 + Python3.6で、CGIのリダイレクトを使ってみた

以前、SSIを使ってみました。 Docker + Alpine3.5 + Apache2.4 + Python3.6で、SSIを使ってみた - メモ的な思考的な 今回はCGIのリダイレクトを使ってみます。 目次 環境 Locationヘッダを使ったリダイレクト NPHスクリプトによる、Locationヘッダを使ったリ…

Docker + Alpine3.5 + Apache2.4 + Python3.6で、SSIを使ってみた

前回、フォームのデータをcgiモジュールを使って受け取りました。 Docker + Alpine3.5 + Apache2.4 + Python3.6で、フォームのデータを標準モジュールcgiで受け取ってみた - メモ的な思考的な 今回は、ApacheのSSI(Server Side Include)を、公式チュートリア…

Docker + Alpine3.5 + Apache2.4 + Python3.6で、フォームのデータを標準モジュールcgiで受け取ってみた

前回、フォームのデータをCGIのPythonスクリプトでsys.stdin.read()とos.environを使って受け取りました。 Dockerで、Alpine3.5 + Apache2.4 + Python3.6の環境を作って、フォームのデータをCGIで受け取ってみた - メモ的な思考的な 今回は標準モジュールcgi…

Dockerで、Alpine3.5 + Apache2.4 + Python3.6の環境を作って、フォームのデータをCGIで受け取ってみた

以前、DockerでCGIを動かしてみました。 Dockerで、Alpine3.4 + Apache2.4.25 + Python3.6.0の環境を作って、CGIを動かしてみた - メモ的な思考的な 今回は、Dockerで、Alpine3.5 + Apache2.4 + Python3.6の環境を作って、フォームのデータをPythonのCGIで受…

Pythonで、unittest.mock.patchを使ってデコレータを差し替える

同僚と話している中で、unittest.mock.patchを使ったデコレータの差し替えに関する話題が出ました。 そういえばデコレータは差し替えたことがなかったため、試してみたことをメモします。 なお、「テストファイル群に、デコレータを差し替える/差し替えない…

Pythonで、Werkzeug.testを使って、WSGIサーバを起動せずにWSGIアプリのテストをする

以前、WebTestやwsgi-interceptを使ってWSGIアプリのテストをしました。 Pythonで、WebTestを使って、WSGIサーバを起動せずにWSGIアプリのテストをする - メモ的な思考的な Pythonで、wsgi-interceptを使って、WSGIサーバを起動せずにWSGIアプリのテストをす…

Pythonで、RequestのCookieを使ってみた

以前、wsgi-interceptを使った時に、PythonのHTTPライブラリとして、Requestsを使いました。 Requests: HTTP for Humans — Requests 2.13.0 documentation 使っている中で、RequestのCookieの使い方について迷ったことがあったため、メモを残します。 環境 M…

Python3で、リテラルのエスケープシーケンスに見える非リテラルの文字列を、Unicode文字へと変換する

Python3で、リテラルに改行コードなどを含めたい場合、エスケープシーケンスを使います。 2.4.1. 文字列およびバイト列リテラル | 2. 字句解析 — Python 3.6.1 ドキュメント 例えば、「Hello(改行) world」としたい場合、 $ python Python 3.6.1 (default, A…