NAME

App::IPUtils - Utilities related to IP address

VERSION

This document describes version 0.001 of App::IPUtils (from Perl distribution App-IPUtils), released on 2016-10-18.

DESCRIPTION

This distribution includes several utilities:

FUNCTIONS

is_ip(%args) -> [status, msg, result, meta]

Check if arguments are IP (v4 or v6) addresses.

Examples:

  • Single argument:

    is_ip(args => ["::1"]); # -> [200, "OK", 1, { "cmdline.exit_code" => 0 }]
  • Single argument (2):

    is_ip(args => ["x"]); # -> [200, "OK", 0, { "cmdline.exit_code" => 1 }]
  • Multiple arguments:

    is_ip(args => ["::1", "127.0.0.1", "x"]);

    Result:

    [
      200,
      "OK",
      [
        { arg => "::1", is_ipv4 => 0, is_ipv6 => 1, is_ip => 1 },
        { arg => "127.0.0.1", is_ipv4 => 1, is_ipv6 => 0, is_ip => 1 },
        { arg => "x", is_ipv4 => 0, is_ipv6 => 0, is_ip => 0 },
      ],
      { "table.fields" => ["arg", "is_ipv4", "is_ipv6", "is_ip"] },
    ]

This function is not exported.

Arguments ('*' denotes required arguments):

  • args* => array[str]

Returns an enveloped result (an array).

First element (status) is an integer containing HTTP status code (200 means OK, 4xx caller error, 5xx function error). Second element (msg) is a string containing error message, or 'OK' if status is 200. Third element (result) is optional, the actual result. Fourth element (meta) is called result metadata and is optional, a hash that contains extra information.

Return value: (any)

is_ipv4(%args) -> [status, msg, result, meta]

Check if arguments are IPv4 addresses.

Examples:

  • Single argument:

    is_ipv4(args => ["127.0.0.1"]); # -> [200, "OK", 1, { "cmdline.exit_code" => 0 }]
  • Single argument (2):

    is_ipv4(args => ["255.255.255.256"]); # -> [200, "OK", 0, { "cmdline.exit_code" => 1 }]
  • Multiple arguments:

    is_ipv4(args => ["127.0.0.1", "255.255.255.256"]);

    Result:

    [
      200,
      "OK",
      [
        { arg => "127.0.0.1", is_ipv4 => 1 },
        { arg => "255.255.255.256", is_ipv4 => 0 },
      ],
      { "table.fields" => ["arg", "is_ipv4"] },
    ]

This function is not exported.

Arguments ('*' denotes required arguments):

  • args* => array[str]

Returns an enveloped result (an array).

First element (status) is an integer containing HTTP status code (200 means OK, 4xx caller error, 5xx function error). Second element (msg) is a string containing error message, or 'OK' if status is 200. Third element (result) is optional, the actual result. Fourth element (meta) is called result metadata and is optional, a hash that contains extra information.

Return value: (any)

is_ipv6(%args) -> [status, msg, result, meta]

Check if arguments are IPv6 addresses.

Examples:

  • Single argument:

    is_ipv6(args => ["::1"]); # -> [200, "OK", 1, { "cmdline.exit_code" => 0 }]
  • Single argument (2):

    is_ipv6(args => ["x"]); # -> [200, "OK", 0, { "cmdline.exit_code" => 1 }]
  • Multiple arguments:

    is_ipv6(args => ["::1", "127.0.0.1", "x"]);

    Result:

    [
      200,
      "OK",
      [
        { arg => "::1", is_ipv6 => 1 },
        { arg => "127.0.0.1", is_ipv6 => 0 },
        { arg => "x", is_ipv6 => 0 },
      ],
      { "table.fields" => ["arg", "is_ipv6"] },
    ]

This function is not exported.

Arguments ('*' denotes required arguments):

  • args* => array[str]

Returns an enveloped result (an array).

First element (status) is an integer containing HTTP status code (200 means OK, 4xx caller error, 5xx function error). Second element (msg) is a string containing error message, or 'OK' if status is 200. Third element (result) is optional, the actual result. Fourth element (meta) is called result metadata and is optional, a hash that contains extra information.

Return value: (any)

HOMEPAGE

Please visit the project's homepage at https://metacpan.org/release/App-IPUtils.

SOURCE

Source repository is at https://github.com/perlancar/perl-App-IPUtils.

BUGS

Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=App-IPUtils

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

AUTHOR

perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2016 by perlancar@cpan.org.

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