From 117a97ba9e1d914461f280b625b04d3d50b7475b Mon Sep 17 00:00:00 2001 From: gitea-actions Date: Sun, 20 Sep 2026 03:18:25 +0000 Subject: [PATCH] build 2026-09-20 03:18 UTC (6cd10434a3d9510d61996308285c5c94564522ef) --- LICENSE | 21 +++ README.md | 300 ++++++++++++++++++++++++++++++++++++++ SHA256SUMS | 51 +++++++ adguard/fraud-score.txt | 12 ++ adguard/geoip-db.txt | 12 ++ adguard/ip-lookup.txt | 21 +++ adguard/ipcheck.txt | 42 ++++++ adguard/leak-test.txt | 6 + clash/fraud-score.list | 12 ++ clash/fraud-score.yaml | 13 ++ clash/geoip-db.list | 12 ++ clash/geoip-db.yaml | 13 ++ clash/ip-lookup.list | 21 +++ clash/ip-lookup.yaml | 22 +++ clash/ipcheck.list | 42 ++++++ clash/ipcheck.yaml | 43 ++++++ clash/leak-test.list | 6 + clash/leak-test.yaml | 7 + geosite.dat | 25 ++++ geosite.dat.sha256sum | 1 + ipcheck.dat | 25 ++++ ipcheck.dat.sha256sum | 1 + json/fraud-score.json | 42 ++++++ json/geoip-db.json | 42 ++++++ json/ip-lookup.json | 78 ++++++++++ json/ipcheck.json | 162 ++++++++++++++++++++ json/leak-test.json | 18 +++ metadata.json | 13 ++ mihomo/fraud-score.mrs | Bin 0 -> 177 bytes mihomo/geoip-db.mrs | Bin 0 -> 168 bytes mihomo/ip-lookup.mrs | Bin 0 -> 234 bytes mihomo/ipcheck.mrs | Bin 0 -> 459 bytes mihomo/leak-test.mrs | Bin 0 -> 99 bytes sing-box/fraud-score.json | 29 ++++ sing-box/fraud-score.srs | Bin 0 -> 166 bytes sing-box/geoip-db.json | 29 ++++ sing-box/geoip-db.srs | Bin 0 -> 157 bytes sing-box/ip-lookup.json | 47 ++++++ sing-box/ip-lookup.srs | Bin 0 -> 227 bytes sing-box/ipcheck.json | 89 +++++++++++ sing-box/ipcheck.srs | Bin 0 -> 452 bytes sing-box/leak-test.json | 17 +++ sing-box/leak-test.srs | Bin 0 -> 86 bytes src/fraud-score.txt | 13 ++ src/geoip-db.txt | 13 ++ src/ip-lookup.txt | 22 +++ src/ipcheck.txt | 43 ++++++ src/leak-test.txt | 7 + txt/fraud-score.txt | 9 ++ txt/geoip-db.txt | 9 ++ txt/ip-lookup.txt | 18 +++ txt/ipcheck.txt | 39 +++++ txt/leak-test.txt | 3 + update-geosite.sh | 74 ++++++++++ 54 files changed, 1524 insertions(+) create mode 100644 LICENSE create mode 100644 README.md create mode 100644 SHA256SUMS create mode 100644 adguard/fraud-score.txt create mode 100644 adguard/geoip-db.txt create mode 100644 adguard/ip-lookup.txt create mode 100644 adguard/ipcheck.txt create mode 100644 adguard/leak-test.txt create mode 100644 clash/fraud-score.list create mode 100644 clash/fraud-score.yaml create mode 100644 clash/geoip-db.list create mode 100644 clash/geoip-db.yaml create mode 100644 clash/ip-lookup.list create mode 100644 clash/ip-lookup.yaml create mode 100644 clash/ipcheck.list create mode 100644 clash/ipcheck.yaml create mode 100644 clash/leak-test.list create mode 100644 clash/leak-test.yaml create mode 100644 geosite.dat create mode 100644 geosite.dat.sha256sum create mode 100644 ipcheck.dat create mode 100644 ipcheck.dat.sha256sum create mode 100644 json/fraud-score.json create mode 100644 json/geoip-db.json create mode 100644 json/ip-lookup.json create mode 100644 json/ipcheck.json create mode 100644 json/leak-test.json create mode 100644 metadata.json create mode 100644 mihomo/fraud-score.mrs create mode 100644 mihomo/geoip-db.mrs create mode 100644 mihomo/ip-lookup.mrs create mode 100644 mihomo/ipcheck.mrs create mode 100644 mihomo/leak-test.mrs create mode 100644 sing-box/fraud-score.json create mode 100644 sing-box/fraud-score.srs create mode 100644 sing-box/geoip-db.json create mode 100644 sing-box/geoip-db.srs create mode 100644 sing-box/ip-lookup.json create mode 100644 sing-box/ip-lookup.srs create mode 100644 sing-box/ipcheck.json create mode 100644 sing-box/ipcheck.srs create mode 100644 sing-box/leak-test.json create mode 100644 sing-box/leak-test.srs create mode 100644 src/fraud-score.txt create mode 100644 src/geoip-db.txt create mode 100644 src/ip-lookup.txt create mode 100644 src/ipcheck.txt create mode 100644 src/leak-test.txt create mode 100644 txt/fraud-score.txt create mode 100644 txt/geoip-db.txt create mode 100644 txt/ip-lookup.txt create mode 100644 txt/ipcheck.txt create mode 100644 txt/leak-test.txt create mode 100644 update-geosite.sh diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..9f75c7f --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Leonid Pershin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..618c639 --- /dev/null +++ b/README.md @@ -0,0 +1,300 @@ +# ipcheck-domains + +Список доменов сервисов, которые определяют и проверяют IP-адрес: «какой у меня IP», +тесты утечек DNS/WebRTC, GeoIP-базы и скоринг прокси/VPN. + +Собирается в несколько форматов. Основной — `geosite.dat` (protobuf v2ray/Xray) для 3x-ui. +CI на Gitea Actions пересобирает всё при каждом изменении `data/` и раз в сутки по расписанию. + +> Если форкнули к себе — поменяйте `gitea.hsrv.site/mrleo1nid/ipcheck-domains` в примерах +> ниже и в `BASE_URL` внутри [`tools/update-geosite.sh`](tools/update-geosite.sh). + +## Категории + +| Категория | Что внутри | +| --- | --- | +| `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://gitea.hsrv.site/mrleo1nid/ipcheck-domains/raw/branch/release/<путь> +``` + +| Файл | Для чего | +| --- | --- | +| `ipcheck.dat` | Xray / v2ray / 3x-ui — кладётся рядом со штатным `geosite.dat` | +| `geosite.dat` | то же самое, но именем по умолчанию — если хотите заменить штатный файл | +| `ipcheck.dat.sha256sum` | контрольная сумма, по ней работает автообновление | +| `update-geosite.sh` | скрипт обновления для cron (см. ниже) | +| `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`, `SHA256SUMS` | время сборки, счётчики, суммы по всем файлам | + +Плюс каждая сборка публикуется как релиз Gitea с датой в теге — там же лежит +`ipcheck-domains-all.tar.gz` со всем содержимым `dist/` разом. + +## 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://gitea.hsrv.site/mrleo1nid/ipcheck-domains/raw/branch/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**). + +## Автообновление на сервере + +Xray читает `.dat` только при старте, поэтому обновление — это «скачать файл и +перезапустить сервис». Этим занимается [`update-geosite.sh`](tools/update-geosite.sh): + +- сначала тянет `.sha256sum` и, если сумма совпала с локальным файлом, **молча выходит** — + ни лишней закачки, ни лишнего перезапуска Xray; +- проверяет контрольную сумму скачанного файла **до** подмены; +- подменяет файл атомарно (`mv` в пределах каталога), старый сохраняет в `.bak`; +- перезапускает сервис только если файл действительно изменился; +- пишет в stdout только когда что-то произошло, так что cron не будет слать письма впустую. + +### Установка + +```bash +curl -fsSL -o /usr/local/bin/update-geosite.sh https://gitea.hsrv.site/mrleo1nid/ipcheck-domains/raw/branch/release/update-geosite.sh +chmod +x /usr/local/bin/update-geosite.sh +``` + +`BASE_URL` и `DEST` уже прописаны в скрипте по умолчанию, так что задать нужно только +команду перезапуска. Проверьте вручную — первый запуск скачает файл и перезапустит панель: + +```bash +RESTART_CMD='x-ui restart' /usr/local/bin/update-geosite.sh +``` + +Второй запуск подряд должен отработать молча и мгновенно — значит сравнение сумм работает. + +### Вариант 1: cron + +`crontab -e` от root, одна строка (04:17 ночи, чтобы не совпадать с чужими крон-джобами): + +```cron +17 4 * * * RESTART_CMD='x-ui restart' /usr/local/bin/update-geosite.sh >> /var/log/ipcheck-update.log 2>&1 +``` + +Если путь до `.dat` другой или репозиторий свой, добавьте в ту же строку `DEST=…` +и `BASE_URL=…`. Когда переменных много, вынесите их в `/etc/default/ipcheck`: + +```bash +export BASE_URL=https://gitea.hsrv.site/mrleo1nid/ipcheck-domains/raw/branch/release +export DEST=/usr/local/x-ui/bin/ipcheck.dat +export RESTART_CMD='x-ui restart' +``` + +```cron +17 4 * * * . /etc/default/ipcheck && /usr/local/bin/update-geosite.sh >> /var/log/ipcheck-update.log 2>&1 +``` + +`export` здесь обязателен: скрипт читает переменные из окружения, а не из своего шелла. + +### Вариант 2: systemd timer + +Точнее cron: `Persistent=true` догоняет пропущенный запуск после перезагрузки, +`RandomizedDelaySec` размазывает нагрузку, а логи идут в journald. + +`/etc/systemd/system/ipcheck-geosite.service`: + +```ini +[Unit] +Description=Обновление ipcheck.dat для Xray +After=network-online.target +Wants=network-online.target + +[Service] +Type=oneshot +Environment=BASE_URL=https://gitea.hsrv.site/mrleo1nid/ipcheck-domains/raw/branch/release +Environment=DEST=/usr/local/x-ui/bin/ipcheck.dat +Environment=RESTART_CMD=x-ui restart +ExecStart=/usr/local/bin/update-geosite.sh +``` + +`/etc/systemd/system/ipcheck-geosite.timer`: + +```ini +[Unit] +Description=Ежедневное обновление ipcheck.dat + +[Timer] +OnCalendar=daily +RandomizedDelaySec=1h +Persistent=true + +[Install] +WantedBy=timers.target +``` + +```bash +systemctl daemon-reload +systemctl enable --now ipcheck-geosite.timer +systemctl start ipcheck-geosite.service # разовая проверка +journalctl -u ipcheck-geosite.service -n 20 +``` + +### Если 3x-ui в Docker + +Путь указывайте внутрь примонтированного тома, а перезапуск делайте через docker: + +```bash +DEST=/var/lib/x-ui-bin/ipcheck.dat RESTART_CMD='docker restart 3x-ui' /usr/local/bin/update-geosite.sh +``` + +### Переменные скрипта + +| Переменная | По умолчанию | Значение | +| --- | --- | --- | +| `BASE_URL` | `https://gitea.hsrv.site/mrleo1nid/ipcheck-domains/raw/branch/release` | база, откуда качать | +| `DEST` | `/usr/local/x-ui/bin/ipcheck.dat` | куда положить файл | +| `NAME` | имя файла из `DEST` | имя файла в репозитории | +| `RESTART_CMD` | пусто | что выполнить после успешного обновления | +| `TIMEOUT` | `30` | таймаут curl, секунды | + +Коды возврата: `0` — обновлено или уже актуально, `1` — ошибка (не скачалось, +не совпала сумма, не удался перезапуск). + +## sing-box + +```json +{ + "route": { + "rules": [{ "rule_set": "ipcheck", "outbound": "proxy" }], + "rule_set": [ + { + "type": "remote", + "tag": "ipcheck", + "format": "binary", + "url": "https://gitea.hsrv.site/mrleo1nid/ipcheck-domains/raw/branch/release/sing-box/ipcheck.srs", + "download_detour": "direct", + "update_interval": "1d" + } + ] + } +} +``` + +Здесь cron не нужен — sing-box обновляет rule-set сам. + +## Clash / mihomo + +```yaml +rule-providers: + ipcheck: + type: http + behavior: domain + format: yaml + url: "https://gitea.hsrv.site/mrleo1nid/ipcheck-domains/raw/branch/release/clash/ipcheck.yaml" + path: ./ruleset/ipcheck.yaml + interval: 86400 + +rules: + - RULE-SET,ipcheck,PROXY +``` + +Для `.mrs` укажите `behavior: domain` и `format: mrs`. Обновление тоже своё, по `interval`. + +## Как добавить домен + +Правьте файлы в `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 +python3 tools/build.py +``` + +Результат — в `dist/`. Проверка исходников без сборки (синтаксис, дубликаты, +домены, уже покрытые родительским суффиксом, циклические `include`): + +```bash +python3 tools/build.py --check +``` + +Тесты сборщика: + +```bash +python3 -m unittest discover -s tools -t tools +``` + +`.srs` и `.mrs` собираются, только если в `PATH` есть `sing-box` и `mihomo` — +без них остальные форматы всё равно соберутся. Скачать их вместе с `xray`: + +```bash +sh tools/fetch-tools.sh ./bin +``` + +Сборщик проверяет сам себя: после записи `geosite.dat` он разбирает файл обратно +и сверяет с исходником. В CI дополнительно поднимается настоящий Xray с правилом +`ext:ipcheck.dat:ipcheck` — если файл не читается, сборка падает. + +## CI + +[`.gitea/workflows/build.yml`](.gitea/workflows/build.yml): проверка → тесты → +сборка → валидация настоящими Xray и sing-box → публикация в ветку `release` → +релиз в Gitea. + +Раннеру нужен образ с `python3`, `curl`, `unzip`, `tar`, `git` (например +`catthehacker/ubuntu:act-latest`); если чего-то нет, первый шаг доставит пакеты сам. + +Публикация идёт под автоматическим токеном `${{ github.token }}`. Если у раннера +нет прав на push в репозиторий или на создание релизов — заведите секрет +`RELEASE_TOKEN` с правами `repo:write`, workflow предпочтёт его. + +## Лицензия + +[MIT](LICENSE). Список доменов — общедоступные факты, используйте как угодно. diff --git a/SHA256SUMS b/SHA256SUMS new file mode 100644 index 0000000..65f7388 --- /dev/null +++ b/SHA256SUMS @@ -0,0 +1,51 @@ +1c1c3f6ca2303141ecbc62b7eb948a62c173a8b8b28f2b4b86cf737a9aa52427 adguard/fraud-score.txt +5ab46aa0ca887111b61135b66f9447f51b55c93d6588252ea3490c93919aae97 adguard/geoip-db.txt +ec0e452c5a359e2156056da21330a0440b0e817aff1b81b559a80ad39b85e1a9 adguard/ip-lookup.txt +9412216ee6701726a4f2c8fe4d57546d78aa0be624adc69c0bdfc902749edef7 adguard/ipcheck.txt +1b5c5b3341f2e95adb7c7664bab3b8a02270bb646e7045196ca584511087f4e1 adguard/leak-test.txt +c475f3d485e2830b904621857958908345e2baafe0e410207c61163ad5b9fd64 clash/fraud-score.list +faddbb13d3c9a2a47c559d23aa0fadba0018d461dc292e60219b8a56634877b7 clash/fraud-score.yaml +c7913328a44f93b61a41545aceb6c60557f9ee1eb2d73b3d6180a05ec12dbd72 clash/geoip-db.list +77dfcb3cfa6efad45adfd2e5f5c310fae148099907f783336f77451f2309e1e6 clash/geoip-db.yaml +664e02852f5b132103d475055ddc8af2f0782d02cba607e5d1444ef8d8770cb8 clash/ip-lookup.list +d653aa6b6c8b9fcc980489b3a65c10cad3799c1260a98488abae49026bab450f clash/ip-lookup.yaml +690fcdab44b059c31be6c2656de8cf27b7568d7868cedcb1542adfa6d958a6fe clash/ipcheck.list +896904b80a6fb32b64fc98fa36e3f3018dcdc8bf5c493e3151478bbfdeff6cd4 clash/ipcheck.yaml +2ce43be4508d5b44c9283f4c9831ddb541ba6386293d50f752f7e3eb6c740638 clash/leak-test.list +4c73658860aacb7597d979c335b0b91eb0fed567789c746bb413ac846cca6bea clash/leak-test.yaml +40ac1b41d51aecabf178ff98ade8dfe2587bd6b49c66260331990774588b040c geosite.dat +67df6d4260d20cc0a77588ff264a6672293b30cbfd406fd0852cd10e07c2bbfa geosite.dat.sha256sum +40ac1b41d51aecabf178ff98ade8dfe2587bd6b49c66260331990774588b040c ipcheck.dat +70ee904b3608e34b985598f8c4d9d70b4deca9778fe1d709fff038688efecb6b ipcheck.dat.sha256sum +817556a7f8f3d74499d8d77459ead2e9d84a42c45e3ba2ac107928c79482e309 json/fraud-score.json +e5172358f352144b1f13ec8442e1e9b3adf490c86dd3411617be408b524179f3 json/geoip-db.json +60b9e442f55454c3d168c0f0fec7ff768be54d04adada068d294f71994d8cbd3 json/ip-lookup.json +22dcc71ef7c7cdd92992037022225f390e00d35c75c49151d3c09fa0abaf1d3a json/ipcheck.json +a4ebdd1db3795f1726d2c4a9bbe3564bf8f2d1ccb575f93e0799ee3a6a1fae9b json/leak-test.json +40ad4fdba0c2709b6240910756ad59337598dc7482c08dbfb95a66130d0ec8cf metadata.json +4909af8cff1593c6e264ecad0e69887bcb881ba3870fa47b0935c2c33a4de63f mihomo/fraud-score.mrs +467e31f4829571d49360f081ab6fbf7453714ee3339fc96e69fc9409b40cc0b3 mihomo/geoip-db.mrs +4a3fe564d7e22ce2e7e317b1727edea9503f08f779ee8969e3eca4b1bcd07d9d mihomo/ip-lookup.mrs +37340c6a9d3e3039eb34d74776d76c88393588cbfc8f273351bc5b7466431fd9 mihomo/ipcheck.mrs +b3e409367c2240fb61f88867686e0708ef9ef3761da1c2b2d5afefa10853ed3c mihomo/leak-test.mrs +f37da541dfebd9389d911b899485e38cd85843a4018733caa4959c5853692662 sing-box/fraud-score.json +68bd460e9119e4b792254ca79b40267a33968d501f40c1841cbad2e2a8448318 sing-box/fraud-score.srs +a08238aa218a4dbe0949b2aad1b5400d447b75fd09c1dc825189c3d657043585 sing-box/geoip-db.json +8d3a1c06cec32a290b868ed27c5432650e11b253b120e293423070a7d8146aeb sing-box/geoip-db.srs +0bc4678629314106f6f4b2d8bcc58c03ea1b55f0971306a9a77f8e5d93aa81b0 sing-box/ip-lookup.json +76a4e6ee48b47c0b25522f6c203873a8560f1fe55dd99d381ff46f507e87e5e3 sing-box/ip-lookup.srs +538890422358a2d094f15ff24e3e21835ab0e7a3ee6d3abd978c4ab4aeb316a8 sing-box/ipcheck.json +feffddcb48734fc5bbfd72d8d85d3d533ae225edae935ea45c9a8b475907c86a sing-box/ipcheck.srs +01bd53410b788ca85e0b09ce729da1355681e422c3c49068da44c9284e457742 sing-box/leak-test.json +c90764bb5463108ff734f531d7c1f7288fa4a1672c6c79a53d769e63f85a5763 sing-box/leak-test.srs +b67ff3c4ea1c371be2d777dcf2b88614673ffd7532f2f8cff7377e7993aa91b6 src/fraud-score.txt +0514a090c68e117030b2eb478360f0eba79740db1c02d5ade6ea7c96e8c864e2 src/geoip-db.txt +0bb286f849b93defebceaec7ec6f3f820aaf3821f7954590b5e7d46a7b559726 src/ip-lookup.txt +c6f4b98ddcdafcafe7bd2c4c580a1ee020d10841e41e9be9404115243bbfdcf8 src/ipcheck.txt +eaffb62f3e7edb9746ca12e15478091127d3891589c3f2cdc15d47fa326df238 src/leak-test.txt +ae44fea51df8eb856c094068205d2b574dea2e54abd2c9832e6cf1b92c916fb4 txt/fraud-score.txt +903d74a61b3832168e793ca3eb940d162de64f965f8df247f4a561791e8690b9 txt/geoip-db.txt +a9f7ee701e36a0b5210945f6d5799447be35a8fe3b412781431b4d2660542aa0 txt/ip-lookup.txt +1fad7449ab2f8beb6f46a7936c2b53d045eba34945bed9e5e36b658eb09338ad txt/ipcheck.txt +5f3438791d5c49b345d26fd8c9bfdba582bed80c3c314fa572e0cf66135e626e txt/leak-test.txt +ff655b22d14d5c0a267ca8fea34ad6dcc18d40a8aef1c0b6a1c6e8a34e2238c2 update-geosite.sh diff --git a/adguard/fraud-score.txt b/adguard/fraud-score.txt new file mode 100644 index 0000000..77f36f0 --- /dev/null +++ b/adguard/fraud-score.txt @@ -0,0 +1,12 @@ +! ipcheck-domains — категория: fraud-score +! Правил: 9. Файл генерируется автоматически, не редактируйте вручную. +! Источник: data/fraud-score.txt +||criminalip.io^ +||fraudguard.io^ +||getipintel.net^ +||iphub.info^ +||ipqualityscore.com^ +||proxycheck.io^ +||scamalytics.com^ +||spur.us^ +||vpnapi.io^ diff --git a/adguard/geoip-db.txt b/adguard/geoip-db.txt new file mode 100644 index 0000000..0e13afa --- /dev/null +++ b/adguard/geoip-db.txt @@ -0,0 +1,12 @@ +! ipcheck-domains — категория: geoip-db +! Правил: 9. Файл генерируется автоматически, не редактируйте вручную. +! Источник: data/geoip-db.txt +||bigdatacloud.net^ +||db-ip.com^ +||ip2location.com^ +||ipbase.com^ +||ipdata.co^ +||ipgeolocation.io^ +||ipregistry.co^ +||ipwhois.io^ +||maxmind.com^ diff --git a/adguard/ip-lookup.txt b/adguard/ip-lookup.txt new file mode 100644 index 0000000..9a62af3 --- /dev/null +++ b/adguard/ip-lookup.txt @@ -0,0 +1,21 @@ +! ipcheck-domains — категория: ip-lookup +! Правил: 18. Файл генерируется автоматически, не редактируйте вручную. +! Источник: data/ip-lookup.txt +||2ip.io^ +||2ip.ru^ +||icanhazip.com^ +||ifconfig.co^ +||ifconfig.io^ +||ifconfig.me^ +||ip-api.com^ +||ip.sb^ +||ipaddress.is^ +||ipapi.co^ +||ipapi.is^ +||ipify.org^ +||ipinfo.io^ +||myip.com^ +||whatismyip.com^ +||whatismyipaddress.com^ +||whoer.com^ +||whoer.net^ diff --git a/adguard/ipcheck.txt b/adguard/ipcheck.txt new file mode 100644 index 0000000..985b9b0 --- /dev/null +++ b/adguard/ipcheck.txt @@ -0,0 +1,42 @@ +! ipcheck-domains — категория: ipcheck +! Правил: 39. Файл генерируется автоматически, не редактируйте вручную. +! Источник: data/ipcheck.txt +||2ip.io^ +||2ip.ru^ +||bigdatacloud.net^ +||browserleaks.com^ +||criminalip.io^ +||db-ip.com^ +||dnsleaktest.com^ +||fraudguard.io^ +||getipintel.net^ +||icanhazip.com^ +||ifconfig.co^ +||ifconfig.io^ +||ifconfig.me^ +||ip-api.com^ +||ip.sb^ +||ip2location.com^ +||ipaddress.is^ +||ipapi.co^ +||ipapi.is^ +||ipbase.com^ +||ipdata.co^ +||ipgeolocation.io^ +||iphub.info^ +||ipify.org^ +||ipinfo.io^ +||ipleak.net^ +||ipqualityscore.com^ +||ipregistry.co^ +||ipwhois.io^ +||maxmind.com^ +||myip.com^ +||proxycheck.io^ +||scamalytics.com^ +||spur.us^ +||vpnapi.io^ +||whatismyip.com^ +||whatismyipaddress.com^ +||whoer.com^ +||whoer.net^ diff --git a/adguard/leak-test.txt b/adguard/leak-test.txt new file mode 100644 index 0000000..5218459 --- /dev/null +++ b/adguard/leak-test.txt @@ -0,0 +1,6 @@ +! ipcheck-domains — категория: leak-test +! Правил: 3. Файл генерируется автоматически, не редактируйте вручную. +! Источник: data/leak-test.txt +||browserleaks.com^ +||dnsleaktest.com^ +||ipleak.net^ diff --git a/clash/fraud-score.list b/clash/fraud-score.list new file mode 100644 index 0000000..3312696 --- /dev/null +++ b/clash/fraud-score.list @@ -0,0 +1,12 @@ +# ipcheck-domains — категория: fraud-score +# Правил: 9. Файл генерируется автоматически, не редактируйте вручную. +# Источник: data/fraud-score.txt +DOMAIN-SUFFIX,criminalip.io +DOMAIN-SUFFIX,fraudguard.io +DOMAIN-SUFFIX,getipintel.net +DOMAIN-SUFFIX,iphub.info +DOMAIN-SUFFIX,ipqualityscore.com +DOMAIN-SUFFIX,proxycheck.io +DOMAIN-SUFFIX,scamalytics.com +DOMAIN-SUFFIX,spur.us +DOMAIN-SUFFIX,vpnapi.io diff --git a/clash/fraud-score.yaml b/clash/fraud-score.yaml new file mode 100644 index 0000000..2cc8b29 --- /dev/null +++ b/clash/fraud-score.yaml @@ -0,0 +1,13 @@ +# ipcheck-domains — категория: fraud-score +# Правил: 9. Файл генерируется автоматически, не редактируйте вручную. +# Источник: data/fraud-score.txt +payload: + - '+.criminalip.io' + - '+.fraudguard.io' + - '+.getipintel.net' + - '+.iphub.info' + - '+.ipqualityscore.com' + - '+.proxycheck.io' + - '+.scamalytics.com' + - '+.spur.us' + - '+.vpnapi.io' diff --git a/clash/geoip-db.list b/clash/geoip-db.list new file mode 100644 index 0000000..cba3c08 --- /dev/null +++ b/clash/geoip-db.list @@ -0,0 +1,12 @@ +# ipcheck-domains — категория: geoip-db +# Правил: 9. Файл генерируется автоматически, не редактируйте вручную. +# Источник: data/geoip-db.txt +DOMAIN-SUFFIX,bigdatacloud.net +DOMAIN-SUFFIX,db-ip.com +DOMAIN-SUFFIX,ip2location.com +DOMAIN-SUFFIX,ipbase.com +DOMAIN-SUFFIX,ipdata.co +DOMAIN-SUFFIX,ipgeolocation.io +DOMAIN-SUFFIX,ipregistry.co +DOMAIN-SUFFIX,ipwhois.io +DOMAIN-SUFFIX,maxmind.com diff --git a/clash/geoip-db.yaml b/clash/geoip-db.yaml new file mode 100644 index 0000000..239444f --- /dev/null +++ b/clash/geoip-db.yaml @@ -0,0 +1,13 @@ +# ipcheck-domains — категория: geoip-db +# Правил: 9. Файл генерируется автоматически, не редактируйте вручную. +# Источник: data/geoip-db.txt +payload: + - '+.bigdatacloud.net' + - '+.db-ip.com' + - '+.ip2location.com' + - '+.ipbase.com' + - '+.ipdata.co' + - '+.ipgeolocation.io' + - '+.ipregistry.co' + - '+.ipwhois.io' + - '+.maxmind.com' diff --git a/clash/ip-lookup.list b/clash/ip-lookup.list new file mode 100644 index 0000000..b654131 --- /dev/null +++ b/clash/ip-lookup.list @@ -0,0 +1,21 @@ +# ipcheck-domains — категория: ip-lookup +# Правил: 18. Файл генерируется автоматически, не редактируйте вручную. +# Источник: data/ip-lookup.txt +DOMAIN-SUFFIX,2ip.io +DOMAIN-SUFFIX,2ip.ru +DOMAIN-SUFFIX,icanhazip.com +DOMAIN-SUFFIX,ifconfig.co +DOMAIN-SUFFIX,ifconfig.io +DOMAIN-SUFFIX,ifconfig.me +DOMAIN-SUFFIX,ip-api.com +DOMAIN-SUFFIX,ip.sb +DOMAIN-SUFFIX,ipaddress.is +DOMAIN-SUFFIX,ipapi.co +DOMAIN-SUFFIX,ipapi.is +DOMAIN-SUFFIX,ipify.org +DOMAIN-SUFFIX,ipinfo.io +DOMAIN-SUFFIX,myip.com +DOMAIN-SUFFIX,whatismyip.com +DOMAIN-SUFFIX,whatismyipaddress.com +DOMAIN-SUFFIX,whoer.com +DOMAIN-SUFFIX,whoer.net diff --git a/clash/ip-lookup.yaml b/clash/ip-lookup.yaml new file mode 100644 index 0000000..1d4f177 --- /dev/null +++ b/clash/ip-lookup.yaml @@ -0,0 +1,22 @@ +# ipcheck-domains — категория: ip-lookup +# Правил: 18. Файл генерируется автоматически, не редактируйте вручную. +# Источник: data/ip-lookup.txt +payload: + - '+.2ip.io' + - '+.2ip.ru' + - '+.icanhazip.com' + - '+.ifconfig.co' + - '+.ifconfig.io' + - '+.ifconfig.me' + - '+.ip-api.com' + - '+.ip.sb' + - '+.ipaddress.is' + - '+.ipapi.co' + - '+.ipapi.is' + - '+.ipify.org' + - '+.ipinfo.io' + - '+.myip.com' + - '+.whatismyip.com' + - '+.whatismyipaddress.com' + - '+.whoer.com' + - '+.whoer.net' diff --git a/clash/ipcheck.list b/clash/ipcheck.list new file mode 100644 index 0000000..653d9d4 --- /dev/null +++ b/clash/ipcheck.list @@ -0,0 +1,42 @@ +# ipcheck-domains — категория: ipcheck +# Правил: 39. Файл генерируется автоматически, не редактируйте вручную. +# Источник: data/ipcheck.txt +DOMAIN-SUFFIX,2ip.io +DOMAIN-SUFFIX,2ip.ru +DOMAIN-SUFFIX,bigdatacloud.net +DOMAIN-SUFFIX,browserleaks.com +DOMAIN-SUFFIX,criminalip.io +DOMAIN-SUFFIX,db-ip.com +DOMAIN-SUFFIX,dnsleaktest.com +DOMAIN-SUFFIX,fraudguard.io +DOMAIN-SUFFIX,getipintel.net +DOMAIN-SUFFIX,icanhazip.com +DOMAIN-SUFFIX,ifconfig.co +DOMAIN-SUFFIX,ifconfig.io +DOMAIN-SUFFIX,ifconfig.me +DOMAIN-SUFFIX,ip-api.com +DOMAIN-SUFFIX,ip.sb +DOMAIN-SUFFIX,ip2location.com +DOMAIN-SUFFIX,ipaddress.is +DOMAIN-SUFFIX,ipapi.co +DOMAIN-SUFFIX,ipapi.is +DOMAIN-SUFFIX,ipbase.com +DOMAIN-SUFFIX,ipdata.co +DOMAIN-SUFFIX,ipgeolocation.io +DOMAIN-SUFFIX,iphub.info +DOMAIN-SUFFIX,ipify.org +DOMAIN-SUFFIX,ipinfo.io +DOMAIN-SUFFIX,ipleak.net +DOMAIN-SUFFIX,ipqualityscore.com +DOMAIN-SUFFIX,ipregistry.co +DOMAIN-SUFFIX,ipwhois.io +DOMAIN-SUFFIX,maxmind.com +DOMAIN-SUFFIX,myip.com +DOMAIN-SUFFIX,proxycheck.io +DOMAIN-SUFFIX,scamalytics.com +DOMAIN-SUFFIX,spur.us +DOMAIN-SUFFIX,vpnapi.io +DOMAIN-SUFFIX,whatismyip.com +DOMAIN-SUFFIX,whatismyipaddress.com +DOMAIN-SUFFIX,whoer.com +DOMAIN-SUFFIX,whoer.net diff --git a/clash/ipcheck.yaml b/clash/ipcheck.yaml new file mode 100644 index 0000000..a7228cf --- /dev/null +++ b/clash/ipcheck.yaml @@ -0,0 +1,43 @@ +# ipcheck-domains — категория: ipcheck +# Правил: 39. Файл генерируется автоматически, не редактируйте вручную. +# Источник: data/ipcheck.txt +payload: + - '+.2ip.io' + - '+.2ip.ru' + - '+.bigdatacloud.net' + - '+.browserleaks.com' + - '+.criminalip.io' + - '+.db-ip.com' + - '+.dnsleaktest.com' + - '+.fraudguard.io' + - '+.getipintel.net' + - '+.icanhazip.com' + - '+.ifconfig.co' + - '+.ifconfig.io' + - '+.ifconfig.me' + - '+.ip-api.com' + - '+.ip.sb' + - '+.ip2location.com' + - '+.ipaddress.is' + - '+.ipapi.co' + - '+.ipapi.is' + - '+.ipbase.com' + - '+.ipdata.co' + - '+.ipgeolocation.io' + - '+.iphub.info' + - '+.ipify.org' + - '+.ipinfo.io' + - '+.ipleak.net' + - '+.ipqualityscore.com' + - '+.ipregistry.co' + - '+.ipwhois.io' + - '+.maxmind.com' + - '+.myip.com' + - '+.proxycheck.io' + - '+.scamalytics.com' + - '+.spur.us' + - '+.vpnapi.io' + - '+.whatismyip.com' + - '+.whatismyipaddress.com' + - '+.whoer.com' + - '+.whoer.net' diff --git a/clash/leak-test.list b/clash/leak-test.list new file mode 100644 index 0000000..8a34395 --- /dev/null +++ b/clash/leak-test.list @@ -0,0 +1,6 @@ +# ipcheck-domains — категория: leak-test +# Правил: 3. Файл генерируется автоматически, не редактируйте вручную. +# Источник: data/leak-test.txt +DOMAIN-SUFFIX,browserleaks.com +DOMAIN-SUFFIX,dnsleaktest.com +DOMAIN-SUFFIX,ipleak.net diff --git a/clash/leak-test.yaml b/clash/leak-test.yaml new file mode 100644 index 0000000..f9f0d58 --- /dev/null +++ b/clash/leak-test.yaml @@ -0,0 +1,7 @@ +# ipcheck-domains — категория: leak-test +# Правил: 3. Файл генерируется автоматически, не редактируйте вручную. +# Источник: data/leak-test.txt +payload: + - '+.browserleaks.com' + - '+.dnsleaktest.com' + - '+.ipleak.net' diff --git a/geosite.dat b/geosite.dat new file mode 100644 index 0000000..e7ff8f5 --- /dev/null +++ b/geosite.dat @@ -0,0 +1,25 @@ + + + FRAUD-SCORE criminalip.io fraudguard.iogetipintel.net +iphub.infoipqualityscore.com proxycheck.ioscamalytics.com spur.us  vpnapi.io + +GEOIP-DBbigdatacloud.net  db-ip.comip2location.com +ipbase.com  ipdata.coipgeolocation.io ipregistry.co +ipwhois.io maxmind.com + + IP-LOOKUP +2ip.io +2ip.ru icanhazip.com ifconfig.co ifconfig.io ifconfig.me +ip-api.com ip.sb ipaddress.is ipapi.co ipapi.is  ipify.org  ipinfo.io myip.comwhatismyip.comwhatismyipaddress.com  whoer.com  whoer.net + +IPCHECK +2ip.io +2ip.rubigdatacloud.netbrowserleaks.com criminalip.io  db-ip.comdnsleaktest.com fraudguard.iogetipintel.net icanhazip.com ifconfig.co ifconfig.io ifconfig.me +ip-api.com ip.sbip2location.com ipaddress.is ipapi.co ipapi.is +ipbase.com  ipdata.coipgeolocation.io +iphub.info  ipify.org  ipinfo.io +ipleak.netipqualityscore.com ipregistry.co +ipwhois.io maxmind.com myip.com proxycheck.ioscamalytics.com spur.us  vpnapi.iowhatismyip.comwhatismyipaddress.com  whoer.com  whoer.net +F + LEAK-TESTbrowserleaks.comdnsleaktest.com +ipleak.net \ No newline at end of file diff --git a/geosite.dat.sha256sum b/geosite.dat.sha256sum new file mode 100644 index 0000000..5539f8b --- /dev/null +++ b/geosite.dat.sha256sum @@ -0,0 +1 @@ +40ac1b41d51aecabf178ff98ade8dfe2587bd6b49c66260331990774588b040c geosite.dat diff --git a/ipcheck.dat b/ipcheck.dat new file mode 100644 index 0000000..e7ff8f5 --- /dev/null +++ b/ipcheck.dat @@ -0,0 +1,25 @@ + + + FRAUD-SCORE criminalip.io fraudguard.iogetipintel.net +iphub.infoipqualityscore.com proxycheck.ioscamalytics.com spur.us  vpnapi.io + +GEOIP-DBbigdatacloud.net  db-ip.comip2location.com +ipbase.com  ipdata.coipgeolocation.io ipregistry.co +ipwhois.io maxmind.com + + IP-LOOKUP +2ip.io +2ip.ru icanhazip.com ifconfig.co ifconfig.io ifconfig.me +ip-api.com ip.sb ipaddress.is ipapi.co ipapi.is  ipify.org  ipinfo.io myip.comwhatismyip.comwhatismyipaddress.com  whoer.com  whoer.net + +IPCHECK +2ip.io +2ip.rubigdatacloud.netbrowserleaks.com criminalip.io  db-ip.comdnsleaktest.com fraudguard.iogetipintel.net icanhazip.com ifconfig.co ifconfig.io ifconfig.me +ip-api.com ip.sbip2location.com ipaddress.is ipapi.co ipapi.is +ipbase.com  ipdata.coipgeolocation.io +iphub.info  ipify.org  ipinfo.io +ipleak.netipqualityscore.com ipregistry.co +ipwhois.io maxmind.com myip.com proxycheck.ioscamalytics.com spur.us  vpnapi.iowhatismyip.comwhatismyipaddress.com  whoer.com  whoer.net +F + LEAK-TESTbrowserleaks.comdnsleaktest.com +ipleak.net \ No newline at end of file diff --git a/ipcheck.dat.sha256sum b/ipcheck.dat.sha256sum new file mode 100644 index 0000000..e9fb214 --- /dev/null +++ b/ipcheck.dat.sha256sum @@ -0,0 +1 @@ +40ac1b41d51aecabf178ff98ade8dfe2587bd6b49c66260331990774588b040c ipcheck.dat diff --git a/json/fraud-score.json b/json/fraud-score.json new file mode 100644 index 0000000..9ba5549 --- /dev/null +++ b/json/fraud-score.json @@ -0,0 +1,42 @@ +{ + "category": "fraud-score", + "count": 9, + "rules": [ + { + "type": "domain", + "value": "criminalip.io" + }, + { + "type": "domain", + "value": "fraudguard.io" + }, + { + "type": "domain", + "value": "getipintel.net" + }, + { + "type": "domain", + "value": "iphub.info" + }, + { + "type": "domain", + "value": "ipqualityscore.com" + }, + { + "type": "domain", + "value": "proxycheck.io" + }, + { + "type": "domain", + "value": "scamalytics.com" + }, + { + "type": "domain", + "value": "spur.us" + }, + { + "type": "domain", + "value": "vpnapi.io" + } + ] +} diff --git a/json/geoip-db.json b/json/geoip-db.json new file mode 100644 index 0000000..4564ca5 --- /dev/null +++ b/json/geoip-db.json @@ -0,0 +1,42 @@ +{ + "category": "geoip-db", + "count": 9, + "rules": [ + { + "type": "domain", + "value": "bigdatacloud.net" + }, + { + "type": "domain", + "value": "db-ip.com" + }, + { + "type": "domain", + "value": "ip2location.com" + }, + { + "type": "domain", + "value": "ipbase.com" + }, + { + "type": "domain", + "value": "ipdata.co" + }, + { + "type": "domain", + "value": "ipgeolocation.io" + }, + { + "type": "domain", + "value": "ipregistry.co" + }, + { + "type": "domain", + "value": "ipwhois.io" + }, + { + "type": "domain", + "value": "maxmind.com" + } + ] +} diff --git a/json/ip-lookup.json b/json/ip-lookup.json new file mode 100644 index 0000000..7e66487 --- /dev/null +++ b/json/ip-lookup.json @@ -0,0 +1,78 @@ +{ + "category": "ip-lookup", + "count": 18, + "rules": [ + { + "type": "domain", + "value": "2ip.io" + }, + { + "type": "domain", + "value": "2ip.ru" + }, + { + "type": "domain", + "value": "icanhazip.com" + }, + { + "type": "domain", + "value": "ifconfig.co" + }, + { + "type": "domain", + "value": "ifconfig.io" + }, + { + "type": "domain", + "value": "ifconfig.me" + }, + { + "type": "domain", + "value": "ip-api.com" + }, + { + "type": "domain", + "value": "ip.sb" + }, + { + "type": "domain", + "value": "ipaddress.is" + }, + { + "type": "domain", + "value": "ipapi.co" + }, + { + "type": "domain", + "value": "ipapi.is" + }, + { + "type": "domain", + "value": "ipify.org" + }, + { + "type": "domain", + "value": "ipinfo.io" + }, + { + "type": "domain", + "value": "myip.com" + }, + { + "type": "domain", + "value": "whatismyip.com" + }, + { + "type": "domain", + "value": "whatismyipaddress.com" + }, + { + "type": "domain", + "value": "whoer.com" + }, + { + "type": "domain", + "value": "whoer.net" + } + ] +} diff --git a/json/ipcheck.json b/json/ipcheck.json new file mode 100644 index 0000000..ad2fa05 --- /dev/null +++ b/json/ipcheck.json @@ -0,0 +1,162 @@ +{ + "category": "ipcheck", + "count": 39, + "rules": [ + { + "type": "domain", + "value": "2ip.io" + }, + { + "type": "domain", + "value": "2ip.ru" + }, + { + "type": "domain", + "value": "bigdatacloud.net" + }, + { + "type": "domain", + "value": "browserleaks.com" + }, + { + "type": "domain", + "value": "criminalip.io" + }, + { + "type": "domain", + "value": "db-ip.com" + }, + { + "type": "domain", + "value": "dnsleaktest.com" + }, + { + "type": "domain", + "value": "fraudguard.io" + }, + { + "type": "domain", + "value": "getipintel.net" + }, + { + "type": "domain", + "value": "icanhazip.com" + }, + { + "type": "domain", + "value": "ifconfig.co" + }, + { + "type": "domain", + "value": "ifconfig.io" + }, + { + "type": "domain", + "value": "ifconfig.me" + }, + { + "type": "domain", + "value": "ip-api.com" + }, + { + "type": "domain", + "value": "ip.sb" + }, + { + "type": "domain", + "value": "ip2location.com" + }, + { + "type": "domain", + "value": "ipaddress.is" + }, + { + "type": "domain", + "value": "ipapi.co" + }, + { + "type": "domain", + "value": "ipapi.is" + }, + { + "type": "domain", + "value": "ipbase.com" + }, + { + "type": "domain", + "value": "ipdata.co" + }, + { + "type": "domain", + "value": "ipgeolocation.io" + }, + { + "type": "domain", + "value": "iphub.info" + }, + { + "type": "domain", + "value": "ipify.org" + }, + { + "type": "domain", + "value": "ipinfo.io" + }, + { + "type": "domain", + "value": "ipleak.net" + }, + { + "type": "domain", + "value": "ipqualityscore.com" + }, + { + "type": "domain", + "value": "ipregistry.co" + }, + { + "type": "domain", + "value": "ipwhois.io" + }, + { + "type": "domain", + "value": "maxmind.com" + }, + { + "type": "domain", + "value": "myip.com" + }, + { + "type": "domain", + "value": "proxycheck.io" + }, + { + "type": "domain", + "value": "scamalytics.com" + }, + { + "type": "domain", + "value": "spur.us" + }, + { + "type": "domain", + "value": "vpnapi.io" + }, + { + "type": "domain", + "value": "whatismyip.com" + }, + { + "type": "domain", + "value": "whatismyipaddress.com" + }, + { + "type": "domain", + "value": "whoer.com" + }, + { + "type": "domain", + "value": "whoer.net" + } + ] +} diff --git a/json/leak-test.json b/json/leak-test.json new file mode 100644 index 0000000..9d0b601 --- /dev/null +++ b/json/leak-test.json @@ -0,0 +1,18 @@ +{ + "category": "leak-test", + "count": 3, + "rules": [ + { + "type": "domain", + "value": "browserleaks.com" + }, + { + "type": "domain", + "value": "dnsleaktest.com" + }, + { + "type": "domain", + "value": "ipleak.net" + } + ] +} diff --git a/metadata.json b/metadata.json new file mode 100644 index 0000000..abef981 --- /dev/null +++ b/metadata.json @@ -0,0 +1,13 @@ +{ + "built_at": "2026-08-07T11:33:25Z", + "geosite_dat_sha256": "40ac1b41d51aecabf178ff98ade8dfe2587bd6b49c66260331990774588b040c", + "geosite_dat_size": 1420, + "total_rules": 78, + "categories": { + "fraud-score": 9, + "geoip-db": 9, + "ip-lookup": 18, + "ipcheck": 39, + "leak-test": 3 + } +} diff --git a/mihomo/fraud-score.mrs b/mihomo/fraud-score.mrs new file mode 100644 index 0000000000000000000000000000000000000000..895b61863fe74431d0322f3166c75850597181c2 GIT binary patch literal 177 zcmV;i08alXwJ-ey03`(g63QbckUbmpmOyhjh~nnPGFaok(Yls9I~f05D3uW3A~M>lOb5%l``$LLCAOl>$Qv f3>3pyBmxHj!C1KLbq)ja)Fi+{E}7E;r8QY>!VORZ literal 0 HcmV?d00001 diff --git a/mihomo/geoip-db.mrs b/mihomo/geoip-db.mrs new file mode 100644 index 0000000000000000000000000000000000000000..46aa9a9a4b573fb6a7be54909f0b7aa7b4f3046e GIT binary patch literal 168 zcmV;Z09XGgwJ-ey0Nn%tf{7s}pg|dbg2xmvD0ek+%l0Hl$pfAw_TG~)O67a{ikk4i z7K*IfG6k8c`LMDlLy-DntjNvwmin|wnXS=sGgZZ_TtU3nD~+=3&wHYlylEwPdD8rr zdvc3gdhXcL$yrvNs$#7Ab<{B61sFuc{~vfr#Ce2sIsE?*aM3Ub01Xxd24o(NMh5`F WSh(zU4g(0*B*8*1nbQJJB!hh>qkV4?*kN*e=z!#6Ka7mog=#kiST} zJB)zBw1<$9&Q`apcV3$=k|SIyL{5OX9p&+NERsp0|q_pP4a{6Rl_I zFi(Ytkh2~Gg@%y&PhW!&ll7NNYioIKx!A7G`B2om>m#I}{OWjx%^SN>Kidr2Q2QB# zp7H1S9S kiv)#006}^zC?Es}00Z-I*Ar^23%QykSjZ)FS}j`w?8Mh@djJ3c literal 0 HcmV?d00001 diff --git a/mihomo/ipcheck.mrs b/mihomo/ipcheck.mrs new file mode 100644 index 0000000000000000000000000000000000000000..8f5d9cd9a193704c3060a320188d4400e33435c8 GIT binary patch literal 459 zcmV;+0W|(7wJ-fd0Ac~<4FFQ&XEtDMDF6IFNcb-IlX)4^d{P)ZW=p=7DGB+Mq+h(0 zGRYL*0pD@D<}GpKZ$;3?z|dZ3d$vucsgx&KGh?=Dwq|-tTA@T!D`=-@CKElF+LGg> zI;z?xx0K?{7+uV>>4Z(;ejre0OzwQ{=}TA0VYC>^Y}IUyuAPv}W__KE87Iedsxit| zZ|3Ys9fvkjvuu=^2Wjin)jhE`l=hX3diRmi_F324{OJ#HA#Zr7{<8Wg~_6sU3W_eV=Osi2SHjhZdekz zVF)LSwR8Ad(`Y|v!bs4&8@IflKJOUe^VW=+x?LY^=&nuLVR~wZRUOx+s!f+ueN5_Z zmU|JDB6N|%BpsIDsBBagrFOSM;Y7sa*JEQpB5UH;V?RQCWIz5RC4P5zEB}$**Vx?> z|NpxX#pxoZl%nf B+hG6z literal 0 HcmV?d00001 diff --git a/mihomo/leak-test.mrs b/mihomo/leak-test.mrs new file mode 100644 index 0000000000000000000000000000000000000000..c91777918e1f5cbfbc00260b9f72d6a5c26a3836 GIT binary patch literal 99 zcmdPcs{faTVJj1Z3X5-0Fe3vqBLf4^K^6w4RiPmarJ-RA+PNk9smXbIdc`H#*~N*8 zsi~%60AMG2)swD$W84f6i2-O#L1!E%IpNrce-P=|fQls! zF;03mfdalpwW_@|>f`VF|6Hl{kBHoUMKc`p z&}B?)srqF1#yHO|QmtV$x!5ueYy*Zob9b5vX!ca`JaI8-AQI68DW&2~&(;}>h(pZ) UfJX!dLU^fn00030|3`>E(qpGg^8f$< literal 0 HcmV?d00001 diff --git a/sing-box/geoip-db.json b/sing-box/geoip-db.json new file mode 100644 index 0000000..578ba89 --- /dev/null +++ b/sing-box/geoip-db.json @@ -0,0 +1,29 @@ +{ + "version": 1, + "rules": [ + { + "domain": [ + "bigdatacloud.net", + "db-ip.com", + "ip2location.com", + "ipbase.com", + "ipdata.co", + "ipgeolocation.io", + "ipregistry.co", + "ipwhois.io", + "maxmind.com" + ], + "domain_suffix": [ + ".bigdatacloud.net", + ".db-ip.com", + ".ip2location.com", + ".ipbase.com", + ".ipdata.co", + ".ipgeolocation.io", + ".ipregistry.co", + ".ipwhois.io", + ".maxmind.com" + ] + } + ] +} diff --git a/sing-box/geoip-db.srs b/sing-box/geoip-db.srs new file mode 100644 index 0000000000000000000000000000000000000000..0d5f3e96674001eb7079d145fdc4d49178137047 GIT binary patch literal 157 zcmV;O0Al}BQd0qV+BC|s4Z<)G06-@Ky6V(`L5Z{%*>Xzc4a^9VQ()p`=C0d4JZI(!h(=gfMCNhDE2*rGI9rq0B`pR L00960IJG%H9a%@@ literal 0 HcmV?d00001 diff --git a/sing-box/ip-lookup.json b/sing-box/ip-lookup.json new file mode 100644 index 0000000..91ccaf8 --- /dev/null +++ b/sing-box/ip-lookup.json @@ -0,0 +1,47 @@ +{ + "version": 1, + "rules": [ + { + "domain": [ + "2ip.io", + "2ip.ru", + "icanhazip.com", + "ifconfig.co", + "ifconfig.io", + "ifconfig.me", + "ip-api.com", + "ip.sb", + "ipaddress.is", + "ipapi.co", + "ipapi.is", + "ipify.org", + "ipinfo.io", + "myip.com", + "whatismyip.com", + "whatismyipaddress.com", + "whoer.com", + "whoer.net" + ], + "domain_suffix": [ + ".2ip.io", + ".2ip.ru", + ".icanhazip.com", + ".ifconfig.co", + ".ifconfig.io", + ".ifconfig.me", + ".ip-api.com", + ".ip.sb", + ".ipaddress.is", + ".ipapi.co", + ".ipapi.is", + ".ipify.org", + ".ipinfo.io", + ".myip.com", + ".whatismyip.com", + ".whatismyipaddress.com", + ".whoer.com", + ".whoer.net" + ] + } + ] +} diff --git a/sing-box/ip-lookup.srs b/sing-box/ip-lookup.srs new file mode 100644 index 0000000000000000000000000000000000000000..087fd42dfe6f2ffeb2b94a5d75d8d1fe988a8e19 GIT binary patch literal 227 zcmV<90382QQd0qV+8o3&N&`U@#__iiQu)BfWB3(0hLue$0v6-$&hA(2%ws09#8MC} z#WQH(!xR=C#3Gf4QQ{B&|3(&aBGSmw>GR|2OqwTIJiL9Jf4?kWFWvopE$e?*e!ROM z^Mm_(<3HE?&0!-VOW%Lpd^WfJFy*?vt5eA>*%u(U01|8f1`gR+VdRchDvgm=3lXES zuQ9~53VpxQ#IU>1eX>MY$;fswg|TF2Q+A`aG}LkKTC_wrM^Ks2MUBt^Dz-rbsix4- d8bBRMRm|8abkfRg7-#6O`~?62|NnRvS?xZEaU}o% literal 0 HcmV?d00001 diff --git a/sing-box/ipcheck.json b/sing-box/ipcheck.json new file mode 100644 index 0000000..53896e8 --- /dev/null +++ b/sing-box/ipcheck.json @@ -0,0 +1,89 @@ +{ + "version": 1, + "rules": [ + { + "domain": [ + "2ip.io", + "2ip.ru", + "bigdatacloud.net", + "browserleaks.com", + "criminalip.io", + "db-ip.com", + "dnsleaktest.com", + "fraudguard.io", + "getipintel.net", + "icanhazip.com", + "ifconfig.co", + "ifconfig.io", + "ifconfig.me", + "ip-api.com", + "ip.sb", + "ip2location.com", + "ipaddress.is", + "ipapi.co", + "ipapi.is", + "ipbase.com", + "ipdata.co", + "ipgeolocation.io", + "iphub.info", + "ipify.org", + "ipinfo.io", + "ipleak.net", + "ipqualityscore.com", + "ipregistry.co", + "ipwhois.io", + "maxmind.com", + "myip.com", + "proxycheck.io", + "scamalytics.com", + "spur.us", + "vpnapi.io", + "whatismyip.com", + "whatismyipaddress.com", + "whoer.com", + "whoer.net" + ], + "domain_suffix": [ + ".2ip.io", + ".2ip.ru", + ".bigdatacloud.net", + ".browserleaks.com", + ".criminalip.io", + ".db-ip.com", + ".dnsleaktest.com", + ".fraudguard.io", + ".getipintel.net", + ".icanhazip.com", + ".ifconfig.co", + ".ifconfig.io", + ".ifconfig.me", + ".ip-api.com", + ".ip.sb", + ".ip2location.com", + ".ipaddress.is", + ".ipapi.co", + ".ipapi.is", + ".ipbase.com", + ".ipdata.co", + ".ipgeolocation.io", + ".iphub.info", + ".ipify.org", + ".ipinfo.io", + ".ipleak.net", + ".ipqualityscore.com", + ".ipregistry.co", + ".ipwhois.io", + ".maxmind.com", + ".myip.com", + ".proxycheck.io", + ".scamalytics.com", + ".spur.us", + ".vpnapi.io", + ".whatismyip.com", + ".whatismyipaddress.com", + ".whoer.com", + ".whoer.net" + ] + } + ] +} diff --git a/sing-box/ipcheck.srs b/sing-box/ipcheck.srs new file mode 100644 index 0000000000000000000000000000000000000000..5752ed2413daecc57d78b64c26b69e911f7bf948 GIT binary patch literal 452 zcmV;#0XzOvQd0qV+ANSUixfc+g?sJbaUGBUN74L30qBlGj07%RJ2$yZf;yx>*pNZnQs)M1X*vjgu{>fMo2 z>V9>8{rv9rqxb6PosSQnp8q=i^7Yo~kH-h;D4+-R*Y4_ncCdALj2>=j*ZmZj|UvV7m^tuDXya;H~YUAD_Vul9yg)n>I>mCwhu zYlo2Xn1&ck!#ui(7z}zu^e8PNwLG(JdF_KFP7#H9wvN5Tlru}j$YMgnENQgsJ~B3q zk4XYMvrdT`$~86Q*f07(PDXNW0iHP!@!9+~Fga(vq;d4V%Z$`XOu^-VK?YNw<$9nl zyO<>~cWn?u0)AqPeeXLke3eAVV(O;3w`(@oiZyR$!z^gQ2u}^t%xn`z`($?3JgL+7(k#jG)z0UBtJDdPfxG7Bs;q} sF)=kYwInAeyPzmBGc{GOIES~qI6to_B}q?@m-jydAOHaW{~L!FhPT)t`~Uy| literal 0 HcmV?d00001 diff --git a/src/fraud-score.txt b/src/fraud-score.txt new file mode 100644 index 0000000..f4ff785 --- /dev/null +++ b/src/fraud-score.txt @@ -0,0 +1,13 @@ +# ipcheck-domains — категория: fraud-score +# Правил: 9. Файл генерируется автоматически, не редактируйте вручную. +# Источник: data/fraud-score.txt + +criminalip.io +fraudguard.io +getipintel.net +iphub.info +ipqualityscore.com +proxycheck.io +scamalytics.com +spur.us +vpnapi.io diff --git a/src/geoip-db.txt b/src/geoip-db.txt new file mode 100644 index 0000000..7c598f9 --- /dev/null +++ b/src/geoip-db.txt @@ -0,0 +1,13 @@ +# ipcheck-domains — категория: geoip-db +# Правил: 9. Файл генерируется автоматически, не редактируйте вручную. +# Источник: data/geoip-db.txt + +bigdatacloud.net +db-ip.com +ip2location.com +ipbase.com +ipdata.co +ipgeolocation.io +ipregistry.co +ipwhois.io +maxmind.com diff --git a/src/ip-lookup.txt b/src/ip-lookup.txt new file mode 100644 index 0000000..11fac32 --- /dev/null +++ b/src/ip-lookup.txt @@ -0,0 +1,22 @@ +# ipcheck-domains — категория: ip-lookup +# Правил: 18. Файл генерируется автоматически, не редактируйте вручную. +# Источник: data/ip-lookup.txt + +2ip.io +2ip.ru +icanhazip.com +ifconfig.co +ifconfig.io +ifconfig.me +ip-api.com +ip.sb +ipaddress.is +ipapi.co +ipapi.is +ipify.org +ipinfo.io +myip.com +whatismyip.com +whatismyipaddress.com +whoer.com +whoer.net diff --git a/src/ipcheck.txt b/src/ipcheck.txt new file mode 100644 index 0000000..c94f1c8 --- /dev/null +++ b/src/ipcheck.txt @@ -0,0 +1,43 @@ +# ipcheck-domains — категория: ipcheck +# Правил: 39. Файл генерируется автоматически, не редактируйте вручную. +# Источник: data/ipcheck.txt + +2ip.io +2ip.ru +bigdatacloud.net +browserleaks.com +criminalip.io +db-ip.com +dnsleaktest.com +fraudguard.io +getipintel.net +icanhazip.com +ifconfig.co +ifconfig.io +ifconfig.me +ip-api.com +ip.sb +ip2location.com +ipaddress.is +ipapi.co +ipapi.is +ipbase.com +ipdata.co +ipgeolocation.io +iphub.info +ipify.org +ipinfo.io +ipleak.net +ipqualityscore.com +ipregistry.co +ipwhois.io +maxmind.com +myip.com +proxycheck.io +scamalytics.com +spur.us +vpnapi.io +whatismyip.com +whatismyipaddress.com +whoer.com +whoer.net diff --git a/src/leak-test.txt b/src/leak-test.txt new file mode 100644 index 0000000..68e228c --- /dev/null +++ b/src/leak-test.txt @@ -0,0 +1,7 @@ +# ipcheck-domains — категория: leak-test +# Правил: 3. Файл генерируется автоматически, не редактируйте вручную. +# Источник: data/leak-test.txt + +browserleaks.com +dnsleaktest.com +ipleak.net diff --git a/txt/fraud-score.txt b/txt/fraud-score.txt new file mode 100644 index 0000000..a9f6460 --- /dev/null +++ b/txt/fraud-score.txt @@ -0,0 +1,9 @@ +criminalip.io +fraudguard.io +getipintel.net +iphub.info +ipqualityscore.com +proxycheck.io +scamalytics.com +spur.us +vpnapi.io diff --git a/txt/geoip-db.txt b/txt/geoip-db.txt new file mode 100644 index 0000000..1f25252 --- /dev/null +++ b/txt/geoip-db.txt @@ -0,0 +1,9 @@ +bigdatacloud.net +db-ip.com +ip2location.com +ipbase.com +ipdata.co +ipgeolocation.io +ipregistry.co +ipwhois.io +maxmind.com diff --git a/txt/ip-lookup.txt b/txt/ip-lookup.txt new file mode 100644 index 0000000..b43c305 --- /dev/null +++ b/txt/ip-lookup.txt @@ -0,0 +1,18 @@ +2ip.io +2ip.ru +icanhazip.com +ifconfig.co +ifconfig.io +ifconfig.me +ip-api.com +ip.sb +ipaddress.is +ipapi.co +ipapi.is +ipify.org +ipinfo.io +myip.com +whatismyip.com +whatismyipaddress.com +whoer.com +whoer.net diff --git a/txt/ipcheck.txt b/txt/ipcheck.txt new file mode 100644 index 0000000..24c5fb5 --- /dev/null +++ b/txt/ipcheck.txt @@ -0,0 +1,39 @@ +2ip.io +2ip.ru +bigdatacloud.net +browserleaks.com +criminalip.io +db-ip.com +dnsleaktest.com +fraudguard.io +getipintel.net +icanhazip.com +ifconfig.co +ifconfig.io +ifconfig.me +ip-api.com +ip.sb +ip2location.com +ipaddress.is +ipapi.co +ipapi.is +ipbase.com +ipdata.co +ipgeolocation.io +iphub.info +ipify.org +ipinfo.io +ipleak.net +ipqualityscore.com +ipregistry.co +ipwhois.io +maxmind.com +myip.com +proxycheck.io +scamalytics.com +spur.us +vpnapi.io +whatismyip.com +whatismyipaddress.com +whoer.com +whoer.net diff --git a/txt/leak-test.txt b/txt/leak-test.txt new file mode 100644 index 0000000..0c1b928 --- /dev/null +++ b/txt/leak-test.txt @@ -0,0 +1,3 @@ +browserleaks.com +dnsleaktest.com +ipleak.net diff --git a/update-geosite.sh b/update-geosite.sh new file mode 100644 index 0000000..fb39f18 --- /dev/null +++ b/update-geosite.sh @@ -0,0 +1,74 @@ +#!/bin/sh +# Обновляет локальный ipcheck.dat из ветки release. Рассчитан на запуск по cron. +# +# Скачивает файл, только если его sha256 отличается от локального, проверяет +# контрольную сумму до подмены и перезапускает сервис только когда файл реально +# изменился. Молчит, если обновлять нечего, — cron не будет слать письма впустую. +# +# ./update-geosite.sh +# BASE_URL=https://gitea.hsrv.site/mrleo1nid/ipcheck-domains/raw/branch/release \ +# DEST=/usr/local/x-ui/bin/ipcheck.dat RESTART_CMD='x-ui restart' ./update-geosite.sh +# +# Коды возврата: 0 — обновлено или уже актуально, 1 — ошибка. + +set -eu + +BASE_URL="${BASE_URL:-https://gitea.hsrv.site/mrleo1nid/ipcheck-domains/raw/branch/release}" +DEST="${DEST:-/usr/local/x-ui/bin/ipcheck.dat}" +NAME="${NAME:-$(basename "$DEST")}" +RESTART_CMD="${RESTART_CMD:-}" +TIMEOUT="${TIMEOUT:-30}" + +log() { printf '%s update-geosite: %s\n' "$(date -u '+%Y-%m-%dT%H:%M:%SZ')" "$*"; } +die() { log "ОШИБКА: $*" >&2; exit 1; } + +command -v curl >/dev/null 2>&1 || die "нужен curl" + +if command -v sha256sum >/dev/null 2>&1; then + hash_of() { sha256sum "$1" | cut -d' ' -f1; } +elif command -v shasum >/dev/null 2>&1; then + hash_of() { shasum -a 256 "$1" | cut -d' ' -f1; } +else + die "нужен sha256sum или shasum" +fi + +fetch() { curl -fsSL --retry 3 --retry-delay 2 --max-time "$TIMEOUT" "$1"; } + +# Без промежуточной переменной статус вернул бы cut, а не curl. +remote_line=$(fetch "$BASE_URL/$NAME.sha256sum") || + die "не удалось скачать $BASE_URL/$NAME.sha256sum" +remote_sum=$(printf '%s' "$remote_line" | cut -d' ' -f1) +case "$remote_sum" in + [0-9a-f][0-9a-f]*) [ "${#remote_sum}" -eq 64 ] || die "битая контрольная сумма: $remote_sum" ;; + *) die "битая контрольная сумма: $remote_sum" ;; +esac + +if [ -f "$DEST" ] && [ "$(hash_of "$DEST")" = "$remote_sum" ]; then + exit 0 # уже актуально — тишина +fi + +tmp=$(mktemp "${TMPDIR:-/tmp}/ipcheck.XXXXXX") || die "не удалось создать временный файл" +trap 'rm -f "$tmp"' EXIT INT TERM + +fetch "$BASE_URL/$NAME" > "$tmp" || die "не удалось скачать $BASE_URL/$NAME" + +got=$(hash_of "$tmp") +[ "$got" = "$remote_sum" ] || die "контрольная сумма не совпала: ожидалось $remote_sum, получено $got" +[ -s "$tmp" ] || die "скачан пустой файл" + +mkdir -p "$(dirname "$DEST")" +if [ -f "$DEST" ]; then + cp -p "$DEST" "$DEST.bak" || die "не удалось сохранить резервную копию" +fi +# mv в пределах одного каталога атомарен: Xray никогда не увидит половину файла. +cat "$tmp" > "$DEST.new" && mv -f "$DEST.new" "$DEST" || die "не удалось записать $DEST" + +log "обновлён $DEST (sha256 $remote_sum)" + +if [ -n "$RESTART_CMD" ]; then + if sh -c "$RESTART_CMD"; then + log "выполнено: $RESTART_CMD" + else + die "перезапуск не удался: $RESTART_CMD" + fi +fi