File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1341,15 +1341,24 @@ function socks5AddressParser(address) {
13411341
13421342 // 解析服务器地址部分
13431343 const latters = latter . split ( ":" ) ;
1344- // 从末尾提取端口号(因为 IPv6 地址中也包含冒号)
1345- port = Number ( latters . pop ( ) . replace ( / [ ^ \d ] / g, '' ) ) ;
1344+ // 检查是否是IPv6地址带端口格式 [xxx]:port
1345+ if ( latters . length > 2 && latter . includes ( "]:" ) ) {
1346+ // IPv6地址带端口格式:[2001:db8::1]:8080
1347+ port = Number ( latter . split ( "]:" ) [ 1 ] . replace ( / [ ^ \d ] / g, '' ) ) ;
1348+ hostname = latter . split ( "]:" ) [ 0 ] + "]" ; // 正确提取hostname部分
1349+ } else if ( latters . length === 2 ) {
1350+ // IPv4地址带端口或域名带端口
1351+ port = Number ( latters . pop ( ) . replace ( / [ ^ \d ] / g, '' ) ) ;
1352+ hostname = latters . join ( ":" ) ;
1353+ } else {
1354+ port = 80 ;
1355+ hostname = latter ;
1356+ }
1357+
13461358 if ( isNaN ( port ) ) {
13471359 throw new Error ( '无效的 SOCKS 地址格式:端口号必须是数字' ) ;
13481360 }
13491361
1350- // 剩余部分就是主机名(可能是域名、IPv4 或 IPv6 地址)
1351- hostname = latters . join ( ":" ) ;
1352-
13531362 // 处理 IPv6 地址的特殊情况
13541363 // IPv6 地址包含多个冒号,所以必须用方括号括起来,如 [2001:db8::1]
13551364 const regex = / ^ \[ .* \] $ / ;
Original file line number Diff line number Diff line change 1- name = " t20250711 "
1+ name = " t20250712 "
22main = " _worker.js"
3- compatibility_date = " 2025-07-11 "
3+ compatibility_date = " 2025-07-12 "
44keep_vars = true
You can’t perform that action at this time.
0 commit comments