Laravel API请求体字段如何校验IP地址格式合法性?

2026-04-28 23:021阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1006个文字,预计阅读时间需要5分钟。

Laravel API请求体字段如何校验IP地址格式合法性?

直接使用 ip 规则即可,Laravel 原生支持,无需额外包或正则表达式。

它会同时校验 IPv4 和 IPv6(除非你明确限定);但注意:它只检查格式合法性,不判断是否真实可达、是否私有、是否被封禁。

  • ip:接受 IPv4 或 IPv6(如 192.168.1.1::1
  • ipv4:仅 IPv4(10.0.0.255 合法,::ffff:127.0.0.1 不合法)
  • ipv6:仅 IPv6(2001:db8::1 合法,127.0.0.1 不合法)
  • 多个规则可组合,比如 required|ip|not_in:127.0.0.1,::1

示例:

request()->validate([ 'client_ip' => 'required|ip' ]);

从 request header 取 X-Forwarded-For 后怎么安全校验

别直接信任 X-Forwarded-For 的原始值——它可能被客户端伪造,也可能含多个 IP(逗号分隔),还可能混入非 IP 字符(如 1.2.3.4, 127.0.0.1, unknown)。

Laravel 默认的 $request->ip() 已经做了基础代理链解析,但如果你手动取 header,就得自己清理和校验。

阅读全文
标签:Laravel

本文共计1006个文字,预计阅读时间需要5分钟。

Laravel API请求体字段如何校验IP地址格式合法性?

直接使用 ip 规则即可,Laravel 原生支持,无需额外包或正则表达式。

它会同时校验 IPv4 和 IPv6(除非你明确限定);但注意:它只检查格式合法性,不判断是否真实可达、是否私有、是否被封禁。

  • ip:接受 IPv4 或 IPv6(如 192.168.1.1::1
  • ipv4:仅 IPv4(10.0.0.255 合法,::ffff:127.0.0.1 不合法)
  • ipv6:仅 IPv6(2001:db8::1 合法,127.0.0.1 不合法)
  • 多个规则可组合,比如 required|ip|not_in:127.0.0.1,::1

示例:

request()->validate([ 'client_ip' => 'required|ip' ]);

从 request header 取 X-Forwarded-For 后怎么安全校验

别直接信任 X-Forwarded-For 的原始值——它可能被客户端伪造,也可能含多个 IP(逗号分隔),还可能混入非 IP 字符(如 1.2.3.4, 127.0.0.1, unknown)。

Laravel 默认的 $request->ip() 已经做了基础代理链解析,但如果你手动取 header,就得自己清理和校验。

阅读全文
标签:Laravel