Go to file
2023-03-09 13:35:24 +02:00
.gitignore Initial commit 2023-03-06 20:31:23 +02:00
go.mod Initial commit 2023-03-06 20:31:23 +02:00
go.sum Initial commit 2023-03-06 20:31:23 +02:00
http.go Fix refresh rate 2023-03-09 13:35:24 +02:00
main.go Initial commit 2023-03-06 20:31:23 +02:00
README.md Update Readme 2023-03-06 21:40:17 +02:00
screenshot.png Initial commit 2023-03-06 20:31:23 +02:00
template.html Initial commit 2023-03-06 20:31:23 +02:00

ColorPing

IPv6 Canvas example

How does it work?

Each IPv6 address in a /64 IPv6 subnet is associated to one pixel with color (RGB) information.
When an address is pinged, the corresponding pixel is changed on the canvas and displayed to all viewers via a webpage.

Setup

Run and assign a /64 IPv6 subnet to the created interface named canvas. The program needs to run as root or with the CAP_NET_ADMIN capability.

Access the webpage where the canvas is displayed at: http://localhost:9090/

Example

./ColorPing
ip addr add fdcf:8538:9ad5:3333::1/64 dev canvas
ip link set up canvas

Ping format

????:????:????:????:XXXX:YYYY:11RR:GGBB

Where:

  • ???? can be anything
  • XXXX must be the target X coordinate of the canvas, encoded as hexadecimal
  • YYYY must be the target Y coordinate of the canvas, encoded as hexadecimal
  • RR target "red" value (0-255), encoded as hexadecimal
  • GG target "green" value (0-255), encoded as hexadecimal
  • BB target "blue" value (0-255), encoded as hexadecimal