airchat
1.0.0
airchat is a zero-dependency* P2P CLI chat tool that (ab)uses the AirDrop interface to allow chatting across WiFi networks (or no WiFi network).
A RailsCamp AU 20 project.
/nick
, /who
, /me
, /quit
# Get it
curl -L https://github.com/chendo/airchat/raw/master/airchat.rb > airchat.rb && chmod +x airchat.rb
# or get someone to AirDrop it to you, etc.
# airchat requires raw access to the /dev/bpf* interface.
# Run using sudo
sudo ./airchat.rb
# OR
# Give permission to /dev/bpf*
sudo chgrp staff /dev/bpf* && sudo chmod g+rw /dev/bpf* # These permissions will reset on reboot
./airchat.rb
airchat uses the awdl0
interface to talk to other machines with AirDrop active.
However, OS X restricts binding to this interface, and non-AirDrop network traffic is rejected
with ICMP Port Unreachable
. airchat gets around this by using tcpdump
to receive UDP data,
as OS X doesn't stop you from sending packets through that interface.
airchat broadcasts JSON-encoded messages in UDP to ff02::fb
on port 1337
.
MIT.
ANSI RGB magic sauce from the paint gem.