refactor(infra): share isTailnetIPv4 helper

This commit is contained in:
Peter Steinberger
2026-02-15 21:47:51 +00:00
parent c9bb6bd0d8
commit 012b674f31
2 changed files with 2 additions and 15 deletions

View File

@@ -1,4 +1,5 @@
import { runCommandWithTimeout } from "../process/exec.js";
import { isTailnetIPv4 } from "./tailnet.js";
import { resolveWideAreaDiscoveryDomain } from "./widearea-dns.js";
export type GatewayBonjourBeacon = {
@@ -70,20 +71,6 @@ function decodeDnsSdEscapes(value: string): string {
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[] {
return stdout
.split("\n")

View File

@@ -5,7 +5,7 @@ export type TailnetAddresses = {
ipv6: string[];
};
function isTailnetIPv4(address: string): boolean {
export function isTailnetIPv4(address: string): boolean {
const parts = address.split(".");
if (parts.length !== 4) {
return false;