MCPcopy Index your code
hub / github.com/MengMengCode/GetRealityDomain / IsRealityFeasible

Method IsRealityFeasible

types.go:117–161  ·  view source on GitHub ↗

IsRealityFeasible 检查扫描结果是否符合Reality协议要求

()

Source from the content-addressed store, hash-verified

115
116// IsRealityFeasible 检查扫描结果是否符合Reality协议要求
117func (sr *ScanResult) IsRealityFeasible() bool {
118 // Reality协议的5个要求:
119 // 1. 使用 TLS 1.3 协议
120 // 2. 使用 X25519 签名算法
121 // 3. 支持 HTTP/2 协议(H2)
122 // 4. 不使用 CDN (特别是Cloudflare)
123 // 5. 中国境内可直接访问
124
125 if sr.TLSVersion != RequiredTLSVersion {
126 return false
127 }
128
129 if sr.ALPN != RequiredALPN {
130 return false
131 }
132
133 if sr.Curve != RequiredCurve {
134 return false
135 }
136
137 if sr.CertDomain == "" {
138 return false
139 }
140
141 // 检查证书域名是否有效
142 if !isValidRealityDomain(sr.CertDomain) {
143 return false
144 }
145
146 if sr.CertIssuer == "" {
147 return false
148 }
149
150 // 检测是否使用Cloudflare CDN
151 if DetectCloudflareCDN(sr.CertDomain) {
152 return false
153 }
154
155 // 检测域名连通性(如果启用)
156 if scanControl.PingDomain && !CheckDomainConnectivity(sr.CertDomain) {
157 return false
158 }
159
160 return true
161}
162
163// String 返回HostType的字符串表示
164func (ht HostType) String() string {

Callers 1

scanSingleIPFunction · 0.95

Calls 3

isValidRealityDomainFunction · 0.85
DetectCloudflareCDNFunction · 0.85
CheckDomainConnectivityFunction · 0.85

Tested by

no test coverage detected