bittorrent-peerid
![javascript style guide](https://camo.githubusercontent.com/bde227e3207c7143032c0feb73889ffbda8eb1ef234b820b915ccaf74f9c66d7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f64655f7374796c652d7374616e646172642d627269676874677265656e2e737667)
Map a BitTorrent peer ID to a human-readable client name and version
Also works in the browser with browserify!
This module is used by WebTorrent.
install
npm install bittorrent-peerid
usage
const peerid = require('bittorrent-peerid')
const parsed = peerid('-AZ2200-6wfG2wk6wWLc')
console.log(parsed.client, parsed.version)
The parsed
peerid object looks like this:
{
client: 'Vuze',
version: '2.2.0.0'
}
bittorrent-peerid can parse peer ids encoded in the following formats:
- a 20-byte Buffer
- a 40-character hex string
- an arbitrarily-sized human-readable utf8 string (must decode to a 20-byte Buffer)
If an unknown peer id is passed in, the returned client will be unknown
.
todo
Support known Azureus-style clients.Support known Shadow-style clients.Support known Mainline-style clients.Support known Custom-style clients.Recognize BitComet/Lord/Spirit spoofing.- Full support for client version parsing.
- Full support for customized client version schemes.
- Support unknown clients that conform to either the Azureus or Shadow-style conventions.
credit
This module is based heavily on the BTPeerIDByteDecoderDefinitions class from Azureus (Vuze). Related resources include:
license
MIT. Copyright (c) Travis Fischer and WebTorrent, LLC.