# ipcheck-domains Список доменов сервисов, которые определяют и проверяют IP-адрес: «какой у меня IP», тесты утечек DNS/WebRTC, GeoIP-базы и скоринг прокси/VPN. Собирается в несколько форматов. Основной — `geosite.dat` (protobuf v2ray/Xray) для 3x-ui. Сборка идёт автоматически при каждом изменении `data/` и раз в сутки по расписанию. ## Категории | Категория | Что внутри | | --- | --- | | `ipcheck` | всё вместе — то, что обычно и нужно в роутинге | | `ip-lookup` | «какой у меня IP»: 2ip, whoer, ipinfo, ifconfig.me, ipify… | | `leak-test` | тесты утечек: browserleaks, ipleak, dnsleaktest | | `geoip-db` | GeoIP-базы и справочники: maxmind, db-ip, ip2location… | | `fraud-score` | детекторы VPN/прокси: spur, scamalytics, ipqualityscore… | ## Скачать Ветка `release` обновляется при каждой сборке — ссылки стабильны: ``` https://raw.githubusercontent.com/mrleo1nid/ipcheck-domains/release/<путь> ``` | Файл | Для чего | | --- | --- | | `ipcheck.dat` | Xray / v2ray / 3x-ui — кладётся рядом со штатным `geosite.dat` | | `geosite.dat` | то же самое, но именем по умолчанию — если хотите заменить штатный файл | | `sing-box/<категория>.srs` | sing-box, скомпилированный rule-set | | `sing-box/<категория>.json` | sing-box, исходный rule-set | | `mihomo/<категория>.mrs` | mihomo, бинарный rule-provider | | `clash/<категория>.yaml` | Clash/mihomo rule-provider, `behavior: domain` | | `clash/<категория>.list` | Clash/mihomo rule-provider, `behavior: classical` | | `txt/<категория>.txt` | просто домены, по одному на строку | | `json/<категория>.json` | структурированный список с типами правил | | `adguard/<категория>.txt` | AdGuard Home / uBlock — если нужно блокировать, а не роутить | | `metadata.json` | время сборки, счётчики, sha256 | Плюс каждая сборка публикуется как GitHub Release с датой в теге. ## 3x-ui Файл кладётся туда же, где лежат `geoip.dat` и `geosite.dat` панели. Обычно это `/usr/local/x-ui/bin` (панель, установленная скриптом) или `/usr/local/share/xray`: ```bash curl -fsSL -o /usr/local/x-ui/bin/ipcheck.dat https://raw.githubusercontent.com/mrleo1nid/ipcheck-domains/release/ipcheck.dat ``` Дальше в панели: **Xray Settings → Routing Rules → Add Rule**, поле `domain`: ``` ext:ipcheck.dat:ipcheck ``` и нужный `outboundTag`. Тем же правилом в JSON-конфиге: ```json { "type": "field", "domain": ["ext:ipcheck.dat:ipcheck"], "outboundTag": "proxy" } ``` Если вы заменили штатный `geosite.dat` нашим файлом, синтаксис короче — `geosite:ipcheck`. Отдельные категории адресуются так же: `ext:ipcheck.dat:leak-test`. После замены файла Xray нужно перезапустить (в 3x-ui — **Restart Xray**). ## sing-box ```json { "route": { "rules": [{ "rule_set": "ipcheck", "outbound": "proxy" }], "rule_set": [ { "type": "remote", "tag": "ipcheck", "format": "binary", "url": "https://raw.githubusercontent.com/mrleo1nid/ipcheck-domains/release/sing-box/ipcheck.srs", "download_detour": "direct" } ] } } ``` ## Clash / mihomo ```yaml rule-providers: ipcheck: type: http behavior: domain format: yaml url: "https://raw.githubusercontent.com/mrleo1nid/ipcheck-domains/release/clash/ipcheck.yaml" path: ./ruleset/ipcheck.yaml interval: 86400 rules: - RULE-SET,ipcheck,PROXY ``` Для `.mrs` укажите `behavior: domain` и `format: mrs`. ## Как добавить домен Правьте файлы в `data/` — по одному домену на строку, в подходящую категорию. Всё остальное соберётся само. Формат строки (тот же, что у `v2fly/domain-list-community`): ``` example.com # домен и все его поддомены (тип по умолчанию) domain:example.com # то же самое, явно full:www.example.com # только этот хост, без поддоменов keyword:ipcheck # подстрока в имени regexp:^ip[0-9]+\.com$ # регулярное выражение include:ip-lookup # подключить другую категорию целиком example.com @ads # атрибут — попадёт в .dat как geosite:ipcheck@ads ``` Пустые строки и всё после `#` игнорируются. ## Локальная сборка Нужен только Python 3.10+, зависимостей нет: ```bash python tools/build.py ``` Результат — в `dist/`. Проверка исходников без сборки (синтаксис, дубликаты, домены, уже покрытые родительским суффиксом, циклические `include`): ```bash python tools/build.py --check ``` `.srs` и `.mrs` собираются, только если в `PATH` есть `sing-box` и `mihomo` — без них остальные форматы всё равно соберутся. Пути можно указать явно: ```bash python tools/build.py --sing-box ./bin/sing-box --mihomo ./bin/mihomo ``` Сборщик проверяет сам себя: после записи `geosite.dat` он разбирает файл обратно и сверяет с исходником. В CI дополнительно поднимается настоящий Xray с правилом `ext:geosite.dat:ipcheck` — если файл не читается, сборка падает. ## Лицензия [MIT](LICENSE). Список доменов — общедоступные факты, используйте как угодно.