Skip to content

The multicast package is a Python library that simplifies sending and receiving multicast network messages. It provides classes and tools for implementing multicast communication in Python applications, making it straightforward to work with multicast sockets.

License

Unknown, Unknown licenses found

Licenses found

Unknown
LICENSE
Unknown
LICENSE.md
Notifications You must be signed in to change notification settings

reactive-firewall/multicast

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multicast Python Module

Mcast Logo

Introduction

The multicast package is a Python library that simplifies sending and receiving multicast network messages. It provides classes and tools for implementing multicast communication in Python applications, making it straightforward to work with multicast sockets.

Features

  • Easy Multicast Communication: Send and receive messages over multicast networks with simple interfaces.
  • Command-Line Tools: Includes command-line utilities for quick multicast operations.
  • Cross-Python Compatibility: Designed to work with multiple Python versions.
  • Support for UDP: Works with UDP via IPv4 multicast addresses.

Status

Master (Development)

CircleCI CI Appveyor Documentation Status Test Coverage Code Coverage Bandit Code Climate CodeFactor codebeat badge Size Scc Count Badge Scc Count Badge Scc Count Badge Scc Count Badge Commits-since

Stable (Mainstream)

Stable CircleCI Stable CI Stable Appveyor Stable Code Coverage CodeQL

Installation

Install the package using pip:

pip install -e "git+https://github.com/reactive-firewall/multicast.git#egg=multicast"

Getting Started

Below are basic examples to help you start using the multicast package.

Sending Multicast Messages

from multicast import send

# Create a multicast sender
sender = send.McastSAY()

# Send a message
sender(group='224.0.0.1', port=59259, ttl=1, data='Hello, Multicast!')

Receiving Multicast Messages

from multicast import recv

# Create a multicast receiver
receiver = recv.McastRECV()

# Receive a message
message = receiver(group='224.0.0.1', port=59259, ttl=1)
print('Received:', message)

Listening for Multicast Messages

from multicast import hear

# Create a multicast listener
listener = hear.McastHEAR()

# Listen for messages indefinitely
listener(group='224.0.0.1', port=59259, ttl=1)

Command-Line Usage

The multicast package provides command-line tools for multicast communication prototyping.

  • Read the Usage for details.

FAQ

  • Read the FAQ for common answers.

Default Settings

  • Multicast Group Address: 224.0.0.1 (link-local multicast as per RFC 5771)
  • Default Port: 59259 (within the dynamic/private port range defined by RFC 6335)
  • Time-to-Live (TTL): 1 (as recommended by RFC 1112 Section 6.1 ; messages do not leave the local network)

Security Considerations

In the realm of network communication, security is paramount. When using multicast communication, be vigilant about potential vulnerabilities:

  • Data Sanitization: Always sanitize incoming data to prevent injection attacks (CWE-20, CWE-74).

  • Network Scope: Be mindful of the TTL settings to limit message propagation to the intended network segment. Inappropriate TTL values might expose your multicast traffic beyond the local network, potentially leading to information disclosure (CWE-200).

  • Validation and Error Handling: Implement robust validation and error handling to prevent misuse or disruption of multicast services. (CWE-351).

As Bruce Schneier aptly puts it, "Security is a process, not a product." Always be proactive in assessing and mitigating risks in your implementations and use of multicast.

OpenSSF Best Practices

Documentation

For more detailed documentation and advanced usage, please refer to the official documentation.

Contributing

Contributions are welcome! Please read the contributing guidelines for more information.

Next steps

Next-steps and bug-fixes are tracked Here.

License

Copyright (c) 2021-2025, Mr. Walls

This project is licensed under the MIT License. See the LICENSE.md file for details.

License - MIT

About

The multicast package is a Python library that simplifies sending and receiving multicast network messages. It provides classes and tools for implementing multicast communication in Python applications, making it straightforward to work with multicast sockets.

Topics

Resources

License

Unknown, Unknown licenses found

Licenses found

Unknown
LICENSE
Unknown
LICENSE.md

Code of conduct

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •