SkillAgentSearch skills...

Iplist

IP Address Collection and Management Service with multiple output formats: mikrotik, json, text, ipset, nfset, clashx, keenetic, switchy, amnezia

Install / Use

/learn @rekryt/Iplist
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

IP Address Collection and Management Service with multiple formats

For english readme: README.en.md

Demo URL: https://iplist.opencck.org

iplist

Сервис сбора IP-адресов и CIDR зон

Данный сервис предназначен для сбора и обновления IP-адресов (IPv4 и IPv6), а также их CIDR зон для указанных доменов. Это асинхронный PHP веб-сервер на основе AMPHP и Linux-утилит whois и ipcalc. Сервис предоставляет интерфейсы для получения списков зон ip адресов указанных доменов (IPv4 адресов, IPv6 адресов, а также CIDRv4 и CIDRv6 зон) в различных форматах, включая текстовый, JSON, форматы скриптов для добавления в "Address List" на роутерах Mikrotik (RouterOS), Keenetic KVAS\BAT, SwitchyOmega, Amnezia и др.

Основные возможности

  • Сбор и автоматическое обновление IP-адресов и CIDR зон для доменов.
  • Поддержка вывода данных в различных форматах (JSON, lst, Mikrotik, OpenWRT, ipset и т.д).
  • Интеграция с внешними источниками данных (поддержка импорта начальных данных из внешних URL).
  • Легкое развертывание с помощью Docker Compose.
  • Настройка через JSON файлы для управления доменами.

Используемые технологии

  • PHP 8.1+ (amphp, revolt)
  • whois, ipcalc (linux)

Image

Форматы выгрузки

| формат | описание | |----------|-------------------------------| | json | JSON формат | | text | Разделение новой строкой | | comma | Разделение запятыми | | geoip | v2rayGeoIPDat | | mikrotik | MikroTik Script | | switchy | SwitchyOmega RuleList | | nfset | Dnsmasq nfset | | ipset | Dnsmasq ipset | | clashx | ClashX | | kvas | Keenetic KVAS | | bat | Keenetic Routes .bat | | wildcard | Keenetic DNS | | amnezia | Amnezia filter list | | pac | Proxy Auto-Configuration file |

Настройки

Конфигурационные файлы хранятся в config/<группа>/<портал>.json. Каждый JSON файл представляет собой конфигурацию для конкретного портала, задавая домены для мониторинга и источники начальных данных по IP и CIDR.

{
    "domains": [
        "youtube.com",
        "www.youtube.com",
        "m.youtube.com",
        "www.m.youtube.com",
        "googlevideo.com",
        "www.googlevideo.com",
        "ytimg.com",
        "i.ytimg.com"
    ],
    "dns": ["127.0.0.11:53", "77.88.8.88:53", "8.8.8.8:53"],
    "timeout": 43200,
    "ip4": [],
    "ip6": [],
    "cidr4": [],
    "cidr6": [],
    "external": {
        "domains": ["https://raw.githubusercontent.com/nickspaargaren/no-google/master/categories/youtubeparsed"],
        "ip4": ["https://raw.githubusercontent.com/touhidurrr/iplist-youtube/main/ipv4_list.txt"],
        "ip6": ["https://raw.githubusercontent.com/touhidurrr/iplist-youtube/main/ipv6_list.txt"],
        "cidr4": ["https://raw.githubusercontent.com/touhidurrr/iplist-youtube/main/cidr4.txt"],
        "cidr6": ["https://raw.githubusercontent.com/touhidurrr/iplist-youtube/main/cidr6.txt"]
    }
}

| свойство | тип | описание | |----------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | domains | string[] | Список доменов портала | | dns | string[] | Список DNS серверов для обновления ip-адресов. По мимо локального и google dns, можно использовать публичные российские DNS, например Яндекс | | timeout | int | Время между обновлением ip-адресов доменов (секунды) | | ip4 | string[] | Начальный список ipv4 адресов | | ip6 | string[] | Начальный список ipv6 адресов | | cidr4 | string[] | Начальный список CIDRv4 зон ipv4 адресов | | cidr6 | string[] | Начальный список CIDRv6 зон ipv6 адресов | | external | object | Списки URL для получения данных от сторонних источников |

| свойство | тип | описание | |----------|----------|-----------------------------------------------------| | domains | string[] | Список URL для пополнения доменов портала | | ip4 | string[] | Список URL для пополнения ipv4 адресов | | ip6 | string[] | Список URL для пополнения ipv6 адресов | | cidr4 | string[] | Список URL для пополнения CIDRv4 зон ipv4 адресов | | cidr6 | string[] | Список URL для пополнения CIDRv6 зон ipv6 адресов |

Настройка и запуск под docker

git clone https://github.com/rekryt/iplist.git
cd iplist
cp .env.example .env

Если требуется отредактируйте .env файл

| свойство | значение по умолчанию | описание | |----------------------------|-----------------------|------------------------------------------------------------| | COMPOSE_PROJECT_NAME | iplist | Имя compose проекта | | STORAGE_SAVE_INTERVAL | 120 | Период сохранения кеша whois (секунды) | | SYS_DNS_RESOLVE_IP4 | true | Получать ipv4 адреса | | SYS_DNS_RESOLVE_IP6 | true | Получать ipv6 адреса | | SYS_DNS_RESOLVE_CHUNK_SIZE | 10 | Размер чанка для получения dns записей | | SYS_DNS_RESOLVE_DELAY | 100 | Задержка между получением dns записей (миллисекунды) | | SYS_IP6_SUBNET_PREFIX_CAP | 64 | Максимально допустимая длина префикса IPv6-подсети | | SYS_MEMORY_LIMIT | 1024M | Предельное кол-во памяти. | | SYS_TIMEZONE | Europe/Moscow | Список URL для получения начальных CIDRv4 зон ipv4 адресов | | HTTP_HOST | 0.0.0.0 | IP сетевого интерфейса (по умолчанию все интерфейсы) | | HTTP_PORT | 8080 | Сетевой порт сервера (по умолчанию 8080) | | DEBUG | true | Определяет уровень логирования |

docker compose up -d

Открыть сервис можно в браузере по протоколу http, порт 8080

http://0.0.0.0:8080/
http://0.0.0.0:8080/?format=json
http://0.0.0.0:8080/?format=json&site=youtube.com&data=domains
http://0.0.0.0:8080/?format=text&site=youtube.com&data=ip4
http://0.0.0.0:8080/?format=mikrotik&data=cidr4
http://0.0.0.0:8080/?format=mikrotik&site=youtube.com&data=cidr4
http://0.0.0.0:8080/?format=comma&data=cidr4

| get параметр | описание | пример | |------------------|----------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | format | Формат выгрузки данных | ?format=text | | data | Данные для выгрузки | ?data=cidr4 | | site | Портал для выгрузки данных | ?site=youtube.com | | group | Группа для выгрузки данных | ?group=youtube

View on GitHub
GitHub Stars1.0k
CategoryDevelopment
Updated10m ago
Forks41

Languages

HTML

Security Score

100/100

Audited on Mar 31, 2026

No findings