All Projects → alsmith → Multicast Relay

alsmith / Multicast Relay

Licence: gpl-3.0
Relay multicast and broadcast packets between interfaces.

Programming Languages

python
139335 projects - #7 most used programming language
python3
1442 projects
python2
120 projects

Projects that are alternatives of or similar to Multicast Relay

dart vlc
🎞 Flutter audio / video playback, broadcast & recording library for Windows & Linux.
Stars: ✭ 439 (+295.5%)
Mutual labels:  chromecast, broadcast
Mkchromecast
Cast macOS and Linux Audio/Video to your Google Cast and Sonos Devices
Stars: ✭ 1,837 (+1554.95%)
Mutual labels:  sonos, chromecast
AirConnect-Synology
Updated AirConnect packages for Synology NAS and Synology Router
Stars: ✭ 200 (+80.18%)
Mutual labels:  chromecast, sonos
Airconnect
Use AirPlay to stream to UPnP/Sonos & Chromecast devices
Stars: ✭ 2,349 (+2016.22%)
Mutual labels:  sonos, chromecast
Fastocloud
Self-hosted IPTV/NVR/CCTV/Video service (Community version)
Stars: ✭ 464 (+318.02%)
Mutual labels:  relay, broadcast
Gpac
Modular Multimedia framework for packaging, streaming and playing your favorite content.
Stars: ✭ 1,321 (+1090.09%)
Mutual labels:  broadcast
Ytk Mp4j
Ytk-mp4j is a fast, user-friendly, cross-platform, multi-process, multi-thread collective message passing java library which includes gather, scatter, allgather, reduce-scatter, broadcast, reduce, allreduce communications for distributed machine learning.
Stars: ✭ 102 (-8.11%)
Mutual labels:  broadcast
Gnomecast
Chromecast local files from Linux - supports MKV, subtitles, 5.1 sound and 4K!
Stars: ✭ 1,319 (+1088.29%)
Mutual labels:  chromecast
Sonos
A PHP library for interacting with Sonos speakers
Stars: ✭ 91 (-18.02%)
Mutual labels:  sonos
Alexacast
Chromecast support for Amazon Alexa
Stars: ✭ 109 (-1.8%)
Mutual labels:  chromecast
Souliss Smart Thermostat Wifi
ESP8266 WiFi Smart Thermostat based on Souliss IoT Framework
Stars: ✭ 104 (-6.31%)
Mutual labels:  relay
Addon Aircast
AirCast - Home Assistant Community Add-ons
Stars: ✭ 100 (-9.91%)
Mutual labels:  chromecast
Graphql Relay Js
A library to help construct a graphql-js server supporting react-relay.
Stars: ✭ 1,331 (+1099.1%)
Mutual labels:  relay
Ansible Postfix
Ansible role to set up postfix in Debian-like systems
Stars: ✭ 102 (-8.11%)
Mutual labels:  relay
Fx cast
Implementation of the Google Cast Chrome Sender SDK within Firefox
Stars: ✭ 1,319 (+1088.29%)
Mutual labels:  chromecast
Vinylemulator
Emulate the tactile experience of a vinyl collection through your Sonos system, but with a back end run by Spotify
Stars: ✭ 106 (-4.5%)
Mutual labels:  sonos
Smarthome
Device integration platform for your smart home
Stars: ✭ 92 (-17.12%)
Mutual labels:  sonos
Hyperhue
🌈 A fun HyperTerm theme that responds to your Philips Hue lights
Stars: ✭ 97 (-12.61%)
Mutual labels:  philips-hue
Relay Northwind App
A complex React, Relay, GraphQL demo app. Online demo:
Stars: ✭ 104 (-6.31%)
Mutual labels:  relay
Sacrificial Socket
A Go websocket library with an API similar to Socket.IO... but not Socket.IO
Stars: ✭ 96 (-13.51%)
Mutual labels:  broadcast

Relay broadcast and multicast packets between interfaces

Useful, for example, if you have Sonos speakers on one interface, or VLAN, and you want to be able to control them from devices on a different interface/VLAN. Similar for Chromecast devices.

By default, SSDP multicast packets received on 239.255.255.250:1900 are relayed to the other interfaces listed, as well as multicast DNS packets received on 224.0.0.251:5353.

Broadcast UDP packets received on port 6969 are also relayed by default: this is used by Sonos during the initial device-discovery phase, initiated by pressing either the infinity button or the play+volume up buttons, depending on your Sonos speaker.

Please note that even when your devices have discovered one another, at least in the Sonos case, a unicast connection will be established from the speakers back to the controlling-telephone. You will need to make sure that IP forwarding is enabled (echo 1 > /proc/sys/net/ipv4/ip_forward) and that no firewalling is in place that would prevent connections being established.

usage: multicast-relay.py [-h] --interfaces INTERFACE INTERFACE [INTERFACE ...] [--noTransmitInterfaces INTERFACE ...] [-ifFilter IFFILTER] [--relay BROADCAST_OR_MULTICAST:PORT [BROADCAST_OR_MULTICAST:PORT ...]] [--noMDNS] [--noSSDP] [--noSonosDiscovery] [--oneInterface] [--homebrewNetifaces] [--wait] [--listen REMOTE_ADDRESS [REMOTE_ADDRESS ...]] [--remote REMOTE_ADDRESS] [--remotePort PORT] [--remoteRetry SECS] [--foreground] [--logfile FILE] [--verbose]

--interfaces specifies the >= 2 interfaces that you desire to listen to and relay between. You can specify an interface by name, by IP address, or by network/netmask combination (e.g. 10.0.0.0/24 in the last case). With certain flags below, the minimum number of interfaces drops to >= 1.

--noTransmitInterfaces specifies interface(s) that are listen-only.

--ifFilter specifies a JSON file where one can state that a source address A.B.C.D/M is only to be relayed to specific interfaces. This can be useful in applications such as a hotel where relaying for one guest room may only discover device(s) that are in the same guest room. See example file ifFilter.json.

--relay specifies additional broadcast or multicast addresses to relay.

--noMDNS disables mDNS relaying.

--noSSDP disables SSDP relaying.

--noSonosDiscovery disables broadcast udp/6969 relaying.

--oneInterface support for one interface connected to two networks. Use with caution - watch out for packet storms (although the IP checksum list ought to still prevent such a thing from happening).

--homebrewNetifaces attempt to use our own netifaces implementation, probably doesn't work on any other system than Linux but maybe useful for OpenWRT where it's rather tricky to compile up netifaces.

--allowNonEther supports non-ethernet interfaces to be relayed [experimental].

--wait indicates that the relay should wait for an IPv4 address to be assigned to each interface rather than bailing immediately if an interface is yet to be assigned an address.

--listen for connections from the specified remote host(s).

--remote connect to the specified remote host. If either --listen or --remote are specified, then one can also specify just one local interface with --interfaces.

--remotePort use the specified port for remote communications (default: 1900).

--remoteRetry if the remote connection fails, wait at least this number of seconds before retrying (default: 5).

--aes use the specified string to encrypt/decrypt data packets.

--foreground stops the process forking itself off into the background. This flag also encourages logging to stdout as well as to the syslog.

--logfile saves log data to the specified file.

--verbose steps up the logging.

multicast-relay.py requires the python 'netifaces' package. Install via 'easy_install netifaces' or 'pip install netifaces'. For ZeroShell users, please review README-ZeroShell for further instructions.

Al Smith [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].