A tool to scan your network for RAOP and AirPlay bonjour services and send their details to an open central repository
npm install airharvestThe Apple AirPlay and RAOP protocols are the foundation of Apple TV and
all AirPlay compatible hardware. The two protocols are continuesly
evolving and new features are added all the time. Clément Vasseur did a
fantastic job documenting most of
the two protocols in 2012, but since then a lot have happended.
This project is a first step in trying to fully uncover the two
protocols.
Each new OS release for Apple TV and AirPort Express introduces slight
changes to the two protocols. So an important part of the reverse
engineering is to get snapshots of how the different OS and hardware
combinations expose them selfs on the network.
This project does just that.
Installing an running this software on your computer will collect and
send information about all AirPlay and RAOP compatible devices on your
network to a public database.
See below if you'd like to know what kind of information is collected.
This is a Node.js module, so if you don't already have Node.js
installed, go ahead and do so first.
Then run the following to install AirHarvest:
```
npm install -g airharvest
If you are not comfortable with the command line, you can help by
telling your friends about this project instead.
Note: This have not been tested on Windows and since it have binary
dependencies, this might get tricky. Please open issues if you have any
problmes installing or running this software.
Just run the airharvest command from your command line :)
This is an example of what kind of RAOP data is collected:
`json`
{
"type": "raop",
"port": 5000,
"txt": {
"cn": "0,1,2,3",
"da": "true",
"et": "0,3,5",
"ft": "0x5A7FFFF7,0xE",
"md": "0,1,2",
"am": "AppleTV3,1",
"pk": "**",
"sf": "0x44",
"tp": "UDP",
"vn": "65537",
"vs": "200.54",
"vv": "2"
}
}
This is an example of what kind of AirPlay data is collected:
`json``
{
"type": "airplay",
"port": 7000,
"txt": {
"deviceid": "*",
"features": "0x5A7FFFF7,0xE",
"flags": "0x44",
"model": "AppleTV3,1",
"pk": "**",
"srcvers": "200.54",
"vv": "2"
}
}
MIT