get-ip-utils-by-johnstep
Version:
Простой пакет для получения публичного IP через fetch и axios
32 lines (27 loc) • 939 B
JavaScript
// index.js
import axios from "axios";
// Вариант 1: fetch (Node >=18)
export async function getIpFetch() {
try {
const controller = new AbortController();
const timeout = setTimeout(() => controller.abort(), 30_000);
const res = await fetch("http://httpbin.org/ip", { signal: controller.signal });
clearTimeout(timeout);
if (!res.ok) {
return `Ошибка при получении IP: HTTP ${res.status}`;
}
const data = await res.json();
return data;
} catch (err) {
return `Ошибка при получении IP: ${err.message ?? err}`;
}
}
// Вариант 2: axios (подходит для старых Node и CommonJS)
export async function getIpAxios() {
try {
const res = await axios.get("http://httpbin.org/ip", { timeout: 30000 });
return res.data;
} catch (err) {
return `Ошибка при получении IP: ${err.message ?? err}`;
}
}