View Source RemoteIp.Parsers.Generic (remote_ip v1.2.0)

Generic parser for forwarding headers.

This module implements the RemoteIp.Parser behaviour. When there is not a more specific parser, RemoteIp.Headers.parse/1 falls back to using this one.

The value is parsed simply as a comma-separated list of IPs. This is suitable for a wide range of headers, such as X-Forwarded-For, X-Real-IP, and X-Client-IP.

Any amount of whitespace is allowed before and after the commas, as well as at the beginning & end of the input.

Examples

iex> RemoteIp.Parsers.Generic.parse("1.2.3.4, 5.6.7.8")
[{1, 2, 3, 4}, {5, 6, 7, 8}]

iex> RemoteIp.Parsers.Generic.parse("  ::1  ")
[{0, 0, 0, 0, 0, 0, 0, 1}]

iex> RemoteIp.Parsers.Generic.parse("invalid")
[]