Количество запрещенных в России сайтов стабильно растет. От блокировок страдают не только плохие ребята но и рядовые пользователи интернета.
Я как разработчики различных веб-сервисов и ресурсов, периодически сталкиваюсь с недоступностью последних в России. Это создает проблемы как для бизнесов, так и для личных проектов. Нельзя быть уверенным, что завтра ваш сайт откроется у посетителей.
Продвинутые пользователи уже привыкли жить с VPN или прокси. К сожалению, простые смертные зачастую ничего об этом не знают. Заставить всех использовать средства обхода невозможно, в таком случае, я предлагаю взять ответственность за доступность сайта в свои руки.
Есть несколько способов, в том числе официальных, узнать о том что ресурс заблокирован, например Is It Blocked In Russia? — идею которого я позаимствовал. Этого достаточно для ручной проверки сайта. Действие легко воспроизвести, а значит автоматизировать.
В качестве проекта выходного дня, я запилил небольшой сервис, который частично копирует и расширяет возможности оригинального проекта. Для простоты, я добавил отдельный путь вида /ping?url=habr.com, который в виде ответа возвращает HTTP-статус: 200 — сайт доступен в России, 451 — сайт недоступен, 400 — с адресом что-то не так. В таком виде, ссылку можно скормить любому сервису мониторинга, например https://uptimerobot.com.
Я добавил HTTP(s) монитор c адресом https://isitblockedinrussia.nnm.guru/ping?url=lebster.me и частотой обновления 24 часа.
Домен был заблокирован, поэтому я перенес сайт на другой сервер.
Далее, вы уже сами решите как использовать сервис — выбрать и подключить уведомления в уже существующих сервисах мониторинга или сделать свой.
Сервис использует данные github.com/zapret-info и обновляется раз в день. Сервис предоставляется на условиях «как есть» и не гарантирует соответствие реальной картине мира, так как далеко не все поставщики услуг регулярно обновляют свои базы.
achekalin
Дал сервису на проверку https адрес — он проверил его де, но с протоколом http. Если речь о домене — то протокол вовсе не нужен, а если об урле...
lebster Автор
Есть три основных сущности по которым идет поиск — айпи, домен и урл. Для айпи и домена протокол не важен. Поиска по урл включает протокол запрашиваемого адреса плюс http и https.
Например если проверяем
ftp://какой_то_файл.pdf
, то будем искать совпадение для всех вариантов —ftp://какой_то_файл.pdf
,http://какой_то_файл.pdf
иhttps://какой_то_файл.pdf
Для удобства, заменил протокол по умолчанию на https.
achekalin
Насколько заметил, было не так: ввожу хоть просто имя хоста, хоть http-имя-хоста, хоть https — форма, когда перегружается, содержит в поле вариант http-имя-хоста. Путает, непонятно, что проверяли.
Тем более что эти блокировки и про домены, и про урлы, и про ip-адреса случаются, так что понимать бы неплохо. Или вы по ip же не проверяете?
Но за сервис суперспасибо!
lebster Автор
Обновил поведение для поля ввода, теперь сохраняю оригинальный адрес. Сообщение о результате оставил как есть,
https://example.com
выглядит более естественно. Возможно в будущем поменяю вывод сообщения в зависимости от ввода.Проверка работает по IP в том числе, например вот так isitblockedinrussia.nnm.guru/?url=192.168.0.1.