Skip to content

Latest commit

 

History

History
146 lines (117 loc) · 7.8 KB

CHANGELOG.md

File metadata and controls

146 lines (117 loc) · 7.8 KB

Changelog

All notable changes to this project will be documented in this file.

v3.0.4 - 2023-10-10

  • Fix licensing inconsistencies.
  • Add support for the latest versions of Python.
  • Remove mentions of Python 3.6.

v3.0.3 - 2022-02-06

  • Add the sock property to the ICMPSocket class.

v3.0.2 - 2021-10-31

  • Add support for IPv6 addresses with zone index.
  • The payload property of an ICMPRequest now returns a random value if the payload is not defined instead of None.
  • Optimize imports.

v3.0.1 - 2021-08-14

  • Make the SocketPermissionError more explicit when the OS does not allow instantiation of unprivileged sockets.
  • Delete unnecessary properties from exceptions.
  • Improve SEO on GitHub.

v3.0.0 - 2021-06-01

icmplib 3.0 is here! 🚀

  • The library is now asynchronous!
    • Introduce new functions: async_ping, async_multiping and async_resolve.
    • Add a new AsyncSocket class to make an ICMP socket asynchronous.
  • Rewrite models:
    • All the properties of Host and Hop classes are now lazy.
    • Add new properties to the Host and Hop classes: you can retrieve the list of round-trip times and calculate the jitter.
    • Add the metaclass __str__ to visualize the results more easily.
  • Rewrite the ping, multiping and traceroute functions:
    • The identifier of ICMP requests is now handled automatically by the library.
    • Add the ability to set the address family if a hostname or an FQDN is specified.
    • A new implementation is used for the multiping function. It should be more reliable.
    • The multiping function is now in a dedicated module.
  • Rewrite the documentation to help you get started with icmplib.
  • Improve the resolve function to return all IP addresses found.
  • Add the is_hostname function to check if a string is a hostname or an FQDN.
  • Delete the experimental class BufferedSocket, replaced by AsyncSocket.
  • Performance and compatibility improvement.
  • Many other small changes and fixes.

Special thanks to @JonasKs and @bdraco for their suggestions, advice and feedback!

Python 3.7 or later is now required.

v2.1.1 - 2021-03-21

  • 🐛 Revert changes made to the traceroute function due to a bug.

This version is the last of the 2.x branch. See you soon for the release of icmplib 3.0!

v2.1.0 - 2021-03-20

  • Add a family parameter to the resolve function to define the address family.
  • Improve the reliability of the results of the traceroute function.

v2.0.2 - 2021-02-07

  • Rename the default branch from master to main.
  • Add more details about the privileged parameter in the README file (part 2).
  • 🐛 Fix a bug preventing the traceroute function to work with IPv6 addresses (part 2).

v2.0.1 - 2020-12-12

  • Handle EACCES errors at sockets level.
  • Add some details about the privileged parameter in the README file.
  • 🐛 Fix a bug preventing the traceroute function to work with IPv6 addresses.

v2.0.0 - 2020-11-15

icmplib 2.0 is here! 🚀

  • New library architecture.
  • Add a new multiping function. This function will be faster and more memory efficient.
  • Add the ability to use the library without root privileges.
  • Add the ability to set a source IP address for sending your ICMP packets.
  • Add a first_hop parameter to the traceroute function to set the initial time to live value (@scoulondre).
  • Add two new exceptions:
    • NameLookupError: raised when the requested name does not exist or cannot be resolved.
    • SocketAddressError: raised when the requested address cannot be assigned to the socket.
  • Add a new BufferedSocket class (experimental) to send several packets simultaneously without waiting for a response.
  • The receive method of sockets can receive all incoming packets.
  • Throw new exceptions when instantiating sockets, sending and receiving packets.
  • Improve the resolve function:
    • A NameLookupError is now raised if the requested name does not exist or cannot be resolved.
  • Improve compatibility with Linux, macOS and Windows.
  • Delete deprecated properties.
  • Update docstrings, examples and documentation.

Compatibility with existing programs is maintained.

v1.2.2 - 2020-10-10

  • Add support for hostnames and FQDN resolution to IPv6 addresses.
  • Performance improvement.

v1.2.1 - 2020-09-26

  • 🐛 Fix an issue in the traceroute function which gave the wrong value for the avg_rtt property (@patrickfnielsen).

v1.2.0 - 2020-09-12

  • Add the ability to modify the traffic class of ICMP packets.
  • Add new optional parameters to the traceroute function.
  • Add a new exception SocketUnavailableError when an action is performed while a socket is closed.
  • Add a warning message on deprecated properties.
  • Explicit closure of sockets on built-in functions.
  • 🐛 Fix a bug when ICMP responses are not correctly formatted (part 2).

v1.1.3 - 2020-09-03

  • 🐛 Fix a bug when ICMP responses are not correctly formatted.

v1.1.2 - 2020-08-29

  • 🐛 Fix a compatibility issue.

v1.1.1 - 2020-07-10

  • 🐛 Fix a bug when the source host does not have an IP address.

v1.1.0 - 2020-06-25

  • Add support for odd size payloads.
  • Normalize the names of variables and properties:
    • ICMPReply class: the received_bytes property is deprecated. Use bytes_received instead.
    • Host and Hop classes: the transmitted_packets property is deprecated. Use packets_sent instead.
    • Host and Hop classes: the received_packets property is deprecated. Use packets_received instead.
  • Normalize docstrings.
  • Optimizations.

v1.0.4 - 2020-06-14

  • Add the is_closed property to the ICMPSocket class.
  • Round round-trip time values by default.
  • Add an index for examples.
  • 🐛 Fix a bug in the multiping function where the id parameter was ignored.
  • 🐛 Fix a bug in the ICMPSocket class when instantiated without root privileges.

v1.0.3 - 2020-05-09

  • Add the ability to customize the payload.
  • Improve the ping and multiping functions:
    • You can pass arguments to the ICMPRequest object using keywords arguments **kwargs.
  • Update some docstrings.
  • Add new examples.

v1.0.2 - 2019-10-20

  • Change the license. This project now uses the more permissive license LGPLv3.

v1.0.1 - 2019-10-07

  • Add some examples.
  • Rename model.py to models.py.
  • Update setup keywords.

v1.0.0 - 2019-09-29

  • 🎉 Initial release.