mirror of
https://github.com/sub-store-org/Sub-Store.git
synced 2025-08-10 00:52:40 +00:00
fix: 域名解析修复; 结果增加 _IP4P 字段
This commit is contained in:
@@ -360,14 +360,10 @@ function ScriptOperator(script, targetPlatform, $arguments, source) {
|
||||
};
|
||||
}
|
||||
|
||||
function parseIP4P(ip) {
|
||||
function parseIP4P(IP4P) {
|
||||
let server;
|
||||
let port;
|
||||
try {
|
||||
const IP4P = new ipAddress.Address6(ip).correctForm();
|
||||
if (!/^2001::[^:]+:[^:]+:[^:]+$/.test(IP4P)) {
|
||||
throw new Error(`Invalid IP4P: ${IP4P}`);
|
||||
}
|
||||
let array = IP4P.split(':');
|
||||
|
||||
port = parseInt(array[2], 16);
|
||||
@@ -623,7 +619,7 @@ function ResolveDomainOperator({
|
||||
if (!p['_no-resolve']) {
|
||||
if (results[p.server]) {
|
||||
p._resolved_ips = results[p.server];
|
||||
const ip = Array.isArray(results[p.server])
|
||||
let ip = Array.isArray(results[p.server])
|
||||
? results[p.server][
|
||||
Math.floor(
|
||||
Math.random() * results[p.server].length,
|
||||
@@ -631,18 +627,30 @@ function ResolveDomainOperator({
|
||||
]
|
||||
: results[p.server];
|
||||
if (type === 'IPv6' && isIPv6(ip)) {
|
||||
const { server, port } = parseIP4P(ip);
|
||||
if (server && port) {
|
||||
ip = new ipAddress.Address6(ip).correctForm();
|
||||
if (/^2001::[^:]+:[^:]+:[^:]+$/.test(ip)) {
|
||||
const { server, port } = parseIP4P(ip);
|
||||
if (server && port) {
|
||||
p._domain = p.server;
|
||||
p.server = server;
|
||||
p.port = port;
|
||||
p.resolved = true;
|
||||
p._IPv4 = p.server;
|
||||
p._IP4P = ip;
|
||||
if (!isIP(p._IP)) {
|
||||
p._IP = p.server;
|
||||
}
|
||||
} else if (!p.resolved) {
|
||||
p.resolved = false;
|
||||
}
|
||||
} else {
|
||||
p._domain = p.server;
|
||||
p.server = server;
|
||||
p.port = port;
|
||||
p.server = ip;
|
||||
p.resolved = true;
|
||||
p._IPv4 = p.server;
|
||||
p[`_${type}`] = p.server;
|
||||
if (!isIP(p._IP)) {
|
||||
p._IP = p.server;
|
||||
}
|
||||
} else {
|
||||
p.resolved = false;
|
||||
}
|
||||
} else {
|
||||
p._domain = p.server;
|
||||
@@ -653,7 +661,7 @@ function ResolveDomainOperator({
|
||||
p._IP = p.server;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
} else if (!p.resolved) {
|
||||
p.resolved = false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user