Skip to content

ErrorNoInternet/icmpong

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

icmpong

The classic game of Pong, in your terminal, over ICMPv6!

icmpong.mov

How does this work?

We are basically "using the ping command to send data" between two people, instead of using TCP or UDP.

ICMP allows you to include custom data (patterns) within your packets, so we're sending all of our information (ball position, scores, paddle positions, etc) through ICMP.

Why ICMPv6 (IPv6)?

Unlike IPv4, each device gets its own unique IPv6 address, which means you can connect directly to your friends without any sort of intermediate server.

How can I play?

Simply run icmpong (as root, as it needs to send and capture raw ICMP packets) and supply your friend's IPv6 address (or fe80::101 to play with yourself) via the -p flag. Your friend must also supply your IPv6 address.

Compiling

$ git clone https://github.com/ErrorNoInternet/icmpong
$ cd icmpong
$ cargo build --release

Nix

$ nix run github:ErrorNoInternet/icmpong -- --help

(code is absolutely horrendous)

Thanks to @SpamixOfficial for the idea!

About

The classic game of Pong, in your terminal, over ICMPv6!

Topics

Resources

License

Stars

Watchers

Forks