blob: d110e1275f19de9ffa1d53fd5a7de1f0f7f308b0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
package middleware
import (
"net"
"github.com/labstack/echo/v4"
)
func ExtractIPFromXFFHeaders(trustLinkLocal bool, ips []string) (echo.IPExtractor, error) {
xffOpts := []echo.TrustOption{echo.TrustLinkLocal(trustLinkLocal)}
for _, r := range ips {
_, pn, err := net.ParseCIDR(r)
if err != nil {
return nil, err
}
xffOpts = append(xffOpts, echo.TrustIPRange(pn))
}
return echo.ExtractIPFromXFFHeader(xffOpts...), nil
}
|