Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kioubit/colorping
IPv6 Canvas - draw by pinging. One IPv6 Address = a single pixel with color information
https://github.com/kioubit/colorping
canvas canvas-game icmpv6 ipv6
Last synced: about 1 month ago
JSON representation
IPv6 Canvas - draw by pinging. One IPv6 Address = a single pixel with color information
- Host: GitHub
- URL: https://github.com/kioubit/colorping
- Owner: Kioubit
- Created: 2023-03-06T17:45:36.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-12T00:24:42.000Z (about 2 months ago)
- Last Synced: 2024-11-12T01:21:49.037Z (about 2 months ago)
- Topics: canvas, canvas-game, icmpv6, ipv6
- Language: Go
- Homepage:
- Size: 1.76 MB
- Stars: 7
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ColorPing
![IPv6 Canvas example](screenshot.png?raw=true)## 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