Перейти к содержимому

Пост канала

Серверная Админа | Компьютерные сети
  1. фото

    👋 Привет, сетевой друг! Сегодня проNetwork Insight - TypeScript-библиотеку, которая собирает сетевую информацию прямо из приложения. 🟣Она умеет определить публичный IP, посмотреть сетевые интерфейсы машины, получить геолокацию IP и собрать всё это в один объект: const networkService = NetworkService.getInstance(); const info = await networkService.getFullNetworkInfo(); console.log(info); В ответ можно получить клиентский и публичный IP, город и страну, координаты, timezone и данные интерфейсов вроде eth0 с адресом, маской, MAC и CIDR. 🟣Отдельно интересна работа с Express. Библиотека сразу даёт готовый роутер: app.use('/api/network', createNetworkRouter()); После этого появляются /ip, /public-ip, /location, /interfaces, /full и /health. То есть не нужно каждый раз писать собственные обработчики для сетевой диагностики. 🟣Публичный IP библиотека получает через несколько внешних провайдеров с fallback-механизмом и кэшированием. Если один сервис не отвечает, можно попробовать другой, а повторные запросы не обязательно уходят наружу. Для геолокации используется похожая схема с провайдерами, а TTL кэша можно менять прямо во время работы: networkService.updateConfig({ cache: { ttl: 120000 } }); 🟣Есть и более практичный вариант - middleware. Можно один раз добавить сетевую информацию в req и использовать её дальше в приложении: req.network = { clientIp: networkService.getClientIp(req), service: networkService }; Заодно библиотека умеет делать health check отдельно для IP-сервисов, геолокации и локальной сетевой информации. 🟣Под капотом всё написано на TypeScript, есть CommonJS и ESM, декларации типов, Jest-тесты и заявлено 100% покрытие основных модулей. По сути, Network Insight закрывает типичный набор задач, для которых обычно приходится отдельно подключать os.networkInterfaces(), сервис определения IP, API геолокации и писать вокруг всего этого свою обвязку. 🤖Бесплатный ChatGPT

    Открыть в MAX
    Просмотры
    290
    ER
    0,7%
    Реакции
    2