CHANGELOG.md @ed397480-78af-46e9-b515-c09bc5cfb4c9/upstream — view markup · raw · history · blame
Changelog
All notable changes to this project will be documented in this file.
v3.0.0 - 2021-06-01
icmplib 3.0 is here! :rocket:
- The library is now asynchronous!
- Introduce new functions:
async_ping
,async_multiping
andasync_resolve
. - Add a new
AsyncSocket
class to make an ICMP socket asynchronous. - Rewrite models:
- All the properties of
Host
andHop
classes are now lazy. - Add new properties to the
Host
andHop
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
andtraceroute
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 byAsyncSocket
. - 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
- :bug: 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 theresolve
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
tomain
. - Add more details about the
privileged
parameter in theREADME
file (part 2). - :bug: 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 theREADME
file. - :bug: Fix a bug preventing the
traceroute
function to work with IPv6 addresses.
v2.0.0 - 2020-11-15
icmplib 2.0 is here! :rocket:
- 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 thetraceroute
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
- :bug: Fix an issue in the
traceroute
function which gave the wrong value for theavg_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.
- :bug: Fix a bug when ICMP responses are not correctly formatted (part 2).
v1.1.3 - 2020-09-03
- :bug: Fix a bug when ICMP responses are not correctly formatted.
v1.1.2 - 2020-08-29
- :bug: Fix a compatibility issue.
v1.1.1 - 2020-07-10
- :bug: 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: thereceived_bytes
property is deprecated. Usebytes_received
instead.Host
andHop
classes: thetransmitted_packets
property is deprecated. Usepackets_sent
instead.Host
andHop
classes: thereceived_packets
property is deprecated. Usepackets_received
instead.- Normalize docstrings.
- Optimizations.
v1.0.4 - 2020-06-14
- Add the
is_closed
property to theICMPSocket
class. - Round round-trip time values by default.
- Add an index for examples.
- :bug: Fix a bug in the
multiping
function where theid
parameter was ignored. - :bug: 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
andmultiping
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
tomodels.py
. - Update setup keywords.
v1.0.0 - 2019-09-29
- :tada: Initial release.