Skip to content

yuukami256/illumi-packet

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

イルミパケット


以前のコードで用いられていたライブラリ がdeprecatedとなってしまったので、新しいライブラリを用いるようにしています。

また、readmeにおいても、一部を2022年の新しい情報にアップデートし、その箇所を(追記)で表記しています。


通信パケットを可視化するLANケーブル

English

illumi-packet

動画 (YouTube)

概要

イルミパケットは、通信パケットの種類と方向に合わせて、まるでパケットが流れたかのようにケーブルが光ります。

ARPのパケットはオレンジ色、DHCPのパケットは水色のように光ります。

通常のパケット解析に使われるツールはリアルタイムで目で追うことが難しいのに対し、これはパソコンを操作しながらパケットを観察できるので、「どういう操作」をした時に「どういうパケット」が発生するのかを体感することができます。

例えば、ウェブサイトにアクセスした時は、緑(DNS)と青(TCP)の光が複数個流れます。

color

準備

必要なもの

材料 諸注意
LEDテープ(WS281B) 1m 個別アドレス可能・フルカラーのもの.144LEDs/m 推奨.
Raspberry Pi 1台 動作確認: Raspberry Pi 2, 3, 4
LANケーブル 1m
ジャンパ線 オス-メス 3本
結束バンド 4本

そのほかに,キーボード,ディスプレイ,HDMIケーブル,ルータ等はご用意ください.

環境設定

動作には以下の環境が必要です.

  • golang
  • libpcap
  • SCons
  • rpi_ws281x
  • illumi-packet

ビルド方法

golangのインストール

実行するプログラムはgo言語で記述されています.

https://golang.org/doc/install#install に従ってインストールします.

以下のようにターミナルで実行し,最後にバージョンが表示されることを確認してください.

$ version=1.13.4
$ wget https://storage.googleapis.com/golang/go${version}.linux-armv6l.tar.gz
$ sudo tar -C /usr/local -xzf go${version}.linux-armv6l.tar.gz

$ echo "export PATH=\$PATH:/usr/local/go/bin" >> ~/.profile
$ . ~/.profile

$ go version
go version go1.13.4 linux/arm

(追記)

更新したライブラリで現在利用しているgoのバージョンは go version go1.17.6 linux/arm です。

(追記ここまで)


libpcapのインストール

プログラムからパケットキャプチャを行うためにlibpcapをインストールします.

$ sudo apt-get install libpcap-dev

SConsのインストール

rpi_ws281xをビルドするためにSConsをインストールします.

$ sudo apt-get install scons

rpi_ws281xのインストール

LEDテープはrpi_ws281xというライブラリで操作します.

https://github.com/jgarff/rpi_ws281x に従ってインストールします.

$ git clone https://github.com/jgarff/rpi_ws281x.git
$ cd rpi_ws281x
$ scons

$ sudo cp -ai ./ws2811.h ./rpihw.h ./pwm.h /usr/local/include/
$ sudo cp -ai ./libws2811.a /usr/local/lib/

(追記)

ビルドがうまくいかず、何度も行う場合は-aiのオプションを-afにしておくと、いちいち確認が出ずに強制的に上書きしてくれます。

testの実行

ビルド完了したディレクトリで

$ sudo ./test

を実行

虹色にぎらぎら動いたらビルド成功です!

(追記ここまで)


イルミパケットのソースコード

このリポジトリのソースコードを適当なディレクトリにダウンロードします.

$ git clone https://github.com/souring001/illumi-packet.git
$ cd illumi-packet

(追記)

現在ご覧のこのリポジトリは

$ git clone https://github.com/yuukami256/illumi-packet.git
$ cd illumi-packet

で取得できます。

必要パッケージなどのインストール

とりあえず $ go build illumi-packet.go を実行してみて、〜が足りませんみたいなお知らせが出た場合は

$ go mod download github.com/rpi-ws281x/rpi-ws281x-go

などを実行して必要なものをインストールしてください。

(追記ここまで)


LEDの個数によってillumi-packet.goの以下の変数を適宜変更してください.

LEDの個数 count speed series
60 個/m 60 1 6
144 個/m 144 4 12
144 個/m (50cm) 72 1 12

LANケーブルの作り方

  1. LANケーブルにLEDテープを乗せて,結束バンドで固定する.
  2. ジャンパワイヤ(オス側)を挿し込む
  3. メス側を Raspberry Pi のGPIOの2(5V), 6(GND), 12(信号) に挿し込む
  4. Raspberry Piとルータに接続する

GPIO_Outline

GPIO

ビルド方法

ソースコードを変更するたびにビルドをする必要があります.

$ go build illumi-packet.go

(追記) うまくいかない場合はsudoをつけるとうまくいくこともあるようです。

$ sudo go build illumi-packet.go

を実行して実行ファイルが完成します。

(追記ここまで)


起動

$ sudo ./illumi-packet

Ctrl+Cで終了します.

オプション

オプション 内容
-h オプションの説明
-debug パケット情報等の詳細を出力する(デフォルトはtrue)
-device [string] ネットワークインターフェースを設定(デフォルトはeth0)
-speed [int] パケットの流れる速度を設定(デフォルトは1)
-narp ARPを表示しない
-ntcp TCPを表示しない
-nudp UDPを表示しない
-reset 点灯中のLEDの表示を消す
-ipaddr IPアドレスをLEDに表示する

TCP, UDPのパケットを表示しない.

$ sudo ./illumi-packet -nudp -ntcp

パケット情報等の詳細を出力しない.

$ sudo ./illumi-packet -debug=false

Wi-Fiの通信を可視化する.

$ sudo ./illumi-packet -device wlan0

IPアドレスをLEDに表示する.

$ sudo ./illumi-packet -ipaddr

showipaddress

LEDの表示を消す.

$ sudo ./illumi-packet -reset

LICENSE, CONTACT

本家様のREADME をご参照ください。

About

Illuminating Packets on an Ethernet Cable using LED Strip.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%