addr 相关的几个问题
Open
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 131
- Forks
- 109
- PR merge metrics
- No merged PRs in 30d
Description
IsMulticast()是IsInterfaceLocalMulticast()的超集,IsInterfaceLocalMulticast()是多余的IsPublicAddr()名不符实,仅排除这几项并不能得到准确的结果
这一问题在 Go 标准库的IsGlobalUnicast()同样存在,且尚未得到解决 https://github.com/golang/go/issues/11772
应当排除被 IANA 标记了Globally Reachable为False的地址块- https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml
- https://www.iana.org/assignments/iana-ipv6-special-registry/iana-ipv6-special-registry.xhtml
一个典型 Use Case 是阿里云使用 100.64.0.0/10 的 CGNAT 段提供内网服务,但是 sing-box 的ip_is_private目前并不能匹配
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in common/network/addr.go at lines 19-30, then compare the address predicates with the linked Go standard-library issue and the two IANA special registries. Done means the redundant multicast predicate is addressed and IsPublicAddr no longer treats ranges marked “Globally Reachable” false as public, including the 100.64.0.0/10 case.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100