mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-09 22:24:31 +00:00
refactor(infra): share isTailnetIPv4 helper
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
import { runCommandWithTimeout } from "../process/exec.js";
|
import { runCommandWithTimeout } from "../process/exec.js";
|
||||||
|
import { isTailnetIPv4 } from "./tailnet.js";
|
||||||
import { resolveWideAreaDiscoveryDomain } from "./widearea-dns.js";
|
import { resolveWideAreaDiscoveryDomain } from "./widearea-dns.js";
|
||||||
|
|
||||||
export type GatewayBonjourBeacon = {
|
export type GatewayBonjourBeacon = {
|
||||||
@@ -70,20 +71,6 @@ function decodeDnsSdEscapes(value: string): string {
|
|||||||
return Buffer.from(bytes).toString("utf8");
|
return Buffer.from(bytes).toString("utf8");
|
||||||
}
|
}
|
||||||
|
|
||||||
function isTailnetIPv4(address: string): boolean {
|
|
||||||
const parts = address.split(".");
|
|
||||||
if (parts.length !== 4) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
const octets = parts.map((p) => Number.parseInt(p, 10));
|
|
||||||
if (octets.some((n) => !Number.isFinite(n) || n < 0 || n > 255)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// Tailscale IPv4 range: 100.64.0.0/10
|
|
||||||
const [a, b] = octets;
|
|
||||||
return a === 100 && b >= 64 && b <= 127;
|
|
||||||
}
|
|
||||||
|
|
||||||
function parseDigShortLines(stdout: string): string[] {
|
function parseDigShortLines(stdout: string): string[] {
|
||||||
return stdout
|
return stdout
|
||||||
.split("\n")
|
.split("\n")
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ export type TailnetAddresses = {
|
|||||||
ipv6: string[];
|
ipv6: string[];
|
||||||
};
|
};
|
||||||
|
|
||||||
function isTailnetIPv4(address: string): boolean {
|
export function isTailnetIPv4(address: string): boolean {
|
||||||
const parts = address.split(".");
|
const parts = address.split(".");
|
||||||
if (parts.length !== 4) {
|
if (parts.length !== 4) {
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
Reference in New Issue
Block a user