- 根目录新增 scripts/ 和 .github/ 目录说明 - internal 新增 benchmark/ 和 netutil/ 目录说明 - middleware 新增 bodylimit/ 和 errorintercept/ 目录说明 - 更新日期为 2026-04-07 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1.4 KiB
1.4 KiB
netutil
Purpose
网络相关的通用工具函数包,提供客户端 IP 提取、URL 解析等功能,供 proxy、middleware、server 等模块共享使用。
Key Files
| File | Description |
|---|---|
ip.go |
客户端 IP 提取函数,支持 X-Forwarded-For、X-Real-IP 头 |
url.go |
URL 解析函数,提取主机地址和 TLS 标志 |
ip_test.go |
IP 提取函数单元测试 |
url_test.go |
URL 解析函数单元测试 |
For AI Agents
Working In This Directory
- IP 提取顺序:X-Forwarded-For 第一个 IP → X-Real-IP → RemoteAddr
ExtractClientIP返回字符串,适用于日志记录ExtractClientIPNet返回 net.IP,适用于 CIDR 匹配等网络操作- URL 解析支持 http:// 和 https:// 前缀,自动添加默认端口
Testing Requirements
- 运行测试:
go test ./internal/netutil/... - 测试覆盖:各种代理头组合、URL 格式解析
Common Patterns
- 提取客户端 IP:
ExtractClientIP(ctx)→ "192.168.1.1" - 提取 net.IP:
ExtractClientIPNet(ctx)→ net.IP 对象 - 解析 URL:
ParseTargetURL("https://api.example.com", true)→ ("api.example.com:443", true) - 提取主机:
ExtractHost("http://backend:8080/path")→ "backend:8080"
Dependencies
External
github.com/valyala/fasthttp- HTTP 请求上下文