build 2026-09-20 03:18 UTC (6cd10434a3)
This commit is contained in:
@@ -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.
|
||||||
@@ -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). Список доменов — общедоступные факты, используйте как угодно.
|
||||||
+51
@@ -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
|
||||||
@@ -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^
|
||||||
@@ -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^
|
||||||
@@ -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^
|
||||||
@@ -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^
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
! ipcheck-domains — категория: leak-test
|
||||||
|
! Правил: 3. Файл генерируется автоматически, не редактируйте вручную.
|
||||||
|
! Источник: data/leak-test.txt
|
||||||
|
||browserleaks.com^
|
||||||
|
||dnsleaktest.com^
|
||||||
|
||ipleak.net^
|
||||||
@@ -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
|
||||||
@@ -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'
|
||||||
@@ -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
|
||||||
@@ -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'
|
||||||
@@ -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
|
||||||
@@ -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'
|
||||||
@@ -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
|
||||||
@@ -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'
|
||||||
@@ -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
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
# ipcheck-domains — категория: leak-test
|
||||||
|
# Правил: 3. Файл генерируется автоматически, не редактируйте вручную.
|
||||||
|
# Источник: data/leak-test.txt
|
||||||
|
payload:
|
||||||
|
- '+.browserleaks.com'
|
||||||
|
- '+.dnsleaktest.com'
|
||||||
|
- '+.ipleak.net'
|
||||||
+25
@@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
³
|
||||||
|
FRAUD-SCORE␍criminalip.io␍fraudguard.iogetipintel.net
|
||||||
|
iphub.infoipqualityscore.com␍proxycheck.ioscamalytics.comspur.us␍ vpnapi.io
|
||||||
|
|
||||||
|
GEOIP-DBbigdatacloud.net␍ db-ip.comip2location.com
|
||||||
|
ipbase.com␍ ipdata.coipgeolocation.io␍ipregistry.co
|
||||||
|
ipwhois.iomaxmind.com
|
||||||
|
«
|
||||||
|
IP-LOOKUP
|
||||||
|
2ip.io
|
||||||
|
2ip.ru␍icanhazip.comifconfig.coifconfig.ioifconfig.me
|
||||||
|
ip-api.com ip.sbipaddress.isipapi.coipapi.is␍ ipify.org␍ ipinfo.iomyip.comwhatismyip.comwhatismyipaddress.com␍ whoer.com␍ whoer.net
|
||||||
|
|
||||||
|
IPCHECK
|
||||||
|
2ip.io
|
||||||
|
2ip.rubigdatacloud.netbrowserleaks.com␍criminalip.io␍ db-ip.comdnsleaktest.com␍fraudguard.iogetipintel.net␍icanhazip.comifconfig.coifconfig.ioifconfig.me
|
||||||
|
ip-api.com ip.sbip2location.comipaddress.isipapi.coipapi.is
|
||||||
|
ipbase.com␍ ipdata.coipgeolocation.io
|
||||||
|
iphub.info␍ ipify.org␍ ipinfo.io
|
||||||
|
ipleak.netipqualityscore.com␍ipregistry.co
|
||||||
|
ipwhois.iomaxmind.commyip.com␍proxycheck.ioscamalytics.comspur.us␍ vpnapi.iowhatismyip.comwhatismyipaddress.com␍ whoer.com␍ whoer.net
|
||||||
|
F
|
||||||
|
LEAK-TESTbrowserleaks.comdnsleaktest.com
|
||||||
|
ipleak.net
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
40ac1b41d51aecabf178ff98ade8dfe2587bd6b49c66260331990774588b040c geosite.dat
|
||||||
+25
@@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
³
|
||||||
|
FRAUD-SCORE␍criminalip.io␍fraudguard.iogetipintel.net
|
||||||
|
iphub.infoipqualityscore.com␍proxycheck.ioscamalytics.comspur.us␍ vpnapi.io
|
||||||
|
|
||||||
|
GEOIP-DBbigdatacloud.net␍ db-ip.comip2location.com
|
||||||
|
ipbase.com␍ ipdata.coipgeolocation.io␍ipregistry.co
|
||||||
|
ipwhois.iomaxmind.com
|
||||||
|
«
|
||||||
|
IP-LOOKUP
|
||||||
|
2ip.io
|
||||||
|
2ip.ru␍icanhazip.comifconfig.coifconfig.ioifconfig.me
|
||||||
|
ip-api.com ip.sbipaddress.isipapi.coipapi.is␍ ipify.org␍ ipinfo.iomyip.comwhatismyip.comwhatismyipaddress.com␍ whoer.com␍ whoer.net
|
||||||
|
|
||||||
|
IPCHECK
|
||||||
|
2ip.io
|
||||||
|
2ip.rubigdatacloud.netbrowserleaks.com␍criminalip.io␍ db-ip.comdnsleaktest.com␍fraudguard.iogetipintel.net␍icanhazip.comifconfig.coifconfig.ioifconfig.me
|
||||||
|
ip-api.com ip.sbip2location.comipaddress.isipapi.coipapi.is
|
||||||
|
ipbase.com␍ ipdata.coipgeolocation.io
|
||||||
|
iphub.info␍ ipify.org␍ ipinfo.io
|
||||||
|
ipleak.netipqualityscore.com␍ipregistry.co
|
||||||
|
ipwhois.iomaxmind.commyip.com␍proxycheck.ioscamalytics.comspur.us␍ vpnapi.iowhatismyip.comwhatismyipaddress.com␍ whoer.com␍ whoer.net
|
||||||
|
F
|
||||||
|
LEAK-TESTbrowserleaks.comdnsleaktest.com
|
||||||
|
ipleak.net
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
40ac1b41d51aecabf178ff98ade8dfe2587bd6b49c66260331990774588b040c ipcheck.dat
|
||||||
@@ -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"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -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"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -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"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -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"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -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"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"domain": [
|
||||||
|
"criminalip.io",
|
||||||
|
"fraudguard.io",
|
||||||
|
"getipintel.net",
|
||||||
|
"iphub.info",
|
||||||
|
"ipqualityscore.com",
|
||||||
|
"proxycheck.io",
|
||||||
|
"scamalytics.com",
|
||||||
|
"spur.us",
|
||||||
|
"vpnapi.io"
|
||||||
|
],
|
||||||
|
"domain_suffix": [
|
||||||
|
".criminalip.io",
|
||||||
|
".fraudguard.io",
|
||||||
|
".getipintel.net",
|
||||||
|
".iphub.info",
|
||||||
|
".ipqualityscore.com",
|
||||||
|
".proxycheck.io",
|
||||||
|
".scamalytics.com",
|
||||||
|
".spur.us",
|
||||||
|
".vpnapi.io"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
Binary file not shown.
@@ -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"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
Binary file not shown.
@@ -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"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
Binary file not shown.
@@ -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"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
Binary file not shown.
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"domain": [
|
||||||
|
"browserleaks.com",
|
||||||
|
"dnsleaktest.com",
|
||||||
|
"ipleak.net"
|
||||||
|
],
|
||||||
|
"domain_suffix": [
|
||||||
|
".browserleaks.com",
|
||||||
|
".dnsleaktest.com",
|
||||||
|
".ipleak.net"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
Binary file not shown.
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
# ipcheck-domains — категория: leak-test
|
||||||
|
# Правил: 3. Файл генерируется автоматически, не редактируйте вручную.
|
||||||
|
# Источник: data/leak-test.txt
|
||||||
|
|
||||||
|
browserleaks.com
|
||||||
|
dnsleaktest.com
|
||||||
|
ipleak.net
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
criminalip.io
|
||||||
|
fraudguard.io
|
||||||
|
getipintel.net
|
||||||
|
iphub.info
|
||||||
|
ipqualityscore.com
|
||||||
|
proxycheck.io
|
||||||
|
scamalytics.com
|
||||||
|
spur.us
|
||||||
|
vpnapi.io
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
bigdatacloud.net
|
||||||
|
db-ip.com
|
||||||
|
ip2location.com
|
||||||
|
ipbase.com
|
||||||
|
ipdata.co
|
||||||
|
ipgeolocation.io
|
||||||
|
ipregistry.co
|
||||||
|
ipwhois.io
|
||||||
|
maxmind.com
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
browserleaks.com
|
||||||
|
dnsleaktest.com
|
||||||
|
ipleak.net
|
||||||
@@ -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
|
||||||
Reference in New Issue
Block a user