mirror of
https://github.com/fosrl/pangolin.git
synced 2025-12-14 03:56:54 +00:00
30 lines
766 B
TypeScript
30 lines
766 B
TypeScript
import logger from "@server/logger";
|
|
import axios from "axios";
|
|
|
|
let serverIp: string | null = null;
|
|
|
|
const services = [
|
|
"https://checkip.amazonaws.com",
|
|
"https://ifconfig.io/ip",
|
|
"https://api.ipify.org",
|
|
];
|
|
|
|
export async function fetchServerIp() {
|
|
for (const url of services) {
|
|
try {
|
|
const response = await axios.get(url, { timeout: 5000 });
|
|
serverIp = response.data.trim();
|
|
logger.debug("Detected public IP: " + serverIp);
|
|
return;
|
|
} catch (err: any) {
|
|
console.warn(`Failed to fetch server IP from ${url}: ${err.message || err.code}`);
|
|
}
|
|
}
|
|
|
|
console.error("All attempts to fetch server IP failed.");
|
|
}
|
|
|
|
export function getServerIp() {
|
|
return serverIp;
|
|
}
|