Go to file
2024-06-18 16:18:23 +03:00
.gitignore Initial commit 2023-03-06 20:31:23 +02:00
go.mod Various optimizations 2024-06-18 16:17:56 +03:00
go.sum Various optimizations 2024-06-18 16:17:56 +03:00
http.go Various optimizations 2024-06-18 16:17:56 +03:00
main.go Various optimizations 2024-06-18 16:17:56 +03: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 html: Support mobile & simplify 2024-06-18 16:18:23 +03: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