NAME

Mojolicious::Plugin::ClientIP - Get client's IP address from X-Forwarded-For

SYNOPSIS

use Mojolicious::Lite;

plugin 'ClientIP';

get '/' => sub {
    my $c = shift;
    $c->render(text => $c->client_ip);
};

app->start;

DESCRIPTION

Mojolicious::Plugin::ClientIP is a Mojolicious plugin to get an IP address looks like client, not proxy, from X-Forwarded-For header.

METHODS

client_ip

Find a client IP address from X-Forwarded-For. Private network addresses in XFF are ignored by default. If the good IP address is not found, it returns Mojo::Transaction#remote_address.

OPTIONS

ignore

Specify IP list to be ignored with ArrayRef.

plugin 'ClientIP', ignore => [qw(192.0.2.1 192.0.2.16/28)];

private

Specify IP list which is handled as private IP address. This is a optional parameter. Default values are [qw(127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16)] as defined in RFC 1918.

plugin 'ClientIP', ignore => [qw(192.0.2.16/28)], private => [qw(10.0.0.0/8)];

LICENSE

Copyright (C) Six Apart Ltd. <sixapart@cpan.org>

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

AUTHOR

ziguzagu <ziguzagu@cpan.org>