NAME

Net::Async::Ping::ICMPv6

VERSION

version 0.004001

DESCRIPTION

This is the ICMPv6 part of Net::Async::Ping. See that documentation for full details.

ICMPv6 methods

This module will first attempt to use a ping socket to send its ICMPv6 packets, which does not need root privileges. These are only supported on Linux, and only when the group is stipulated in /proc/sys/net/ipv4/ping_group_range (yes, the IPv4 setting also controls the IPv6 socket). Failing that, the module will use a raw socket limited to the ICMPv6 protocol, which will fail if attempted from a non-privileged account.

ping socket advantages

doesn't require root/admin privileges
better performance, as the kernel is handling the reply to request packet matching

raw socket advantages

supports echo replies, no icmp error messages

Additional options

To disable the attempt to send from a ping socket, set use_ping_socket to 0 when initiating the object:

my $p = Net::Async::Ping->new(
  icmpv6 => {
     use_ping_socket => 0,
  },
);

Return value

Net::Async::Ping::ICMPv6 will return the hires time on success. On failure, it will return the future from IO::Async::Resolver if that failed. Otherwise, it will return as a future failure:

"ICMPv6 Unreachable"

ICMPv6 response was ICMPv6_UNREACHABLE

"ICMPv6 Timeout"

ICMPv6 response was ICMPv6_TIME_EXCEEDED

"Receive error"

An error was received from IO::Async::Socket.

NAME

Net::Async::Ping::ICMPv6

AUTHORS

  • Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>

  • Alexander Hartmaier <abraxxa@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2018 by Arthur Axel "fREW" Schmidt, Alexander Hartmaier.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.