#javascript #html #blogger #script
Вопрос:
Здравствуйте, я уже несколько недель ищу код, который позволяет мне блокировать IP-адрес в blogger. Я пробовал эти строки, но перенаправление не работает для меня.
Комментарии:
1. Использование JavaScript для блокировки IP-адресов будет в значительной степени неэффективным, так как эту проверку можно обойти, просто отключив JavaScript или, что более элегантно, заблокировав DNS домена, в котором хранится скрипт. Не могли бы вы подробнее рассказать, зачем вам нужна эта функциональность? Если на самом деле это не проблема XY, вам понадобится какая-то фильтрация на стороне сервера. Даже в этом случае блоки на основе IP по-прежнему в значительной степени неэффективны из-за тривиальности освобождения и продления блокировки DHCP на определенном IP-адресе или использования прокси/VPN.
2. Это не для клиента, это для университетского проекта, где я должен заблокировать определенный ip-адрес для веб-сайта блоггера. Не имеет значения, удаляют ли они JavaScript или используют VPN, это только для блокировки ip-адреса, и для меня работает скрипт. Я надеюсь, что ты сможешь помочь мне, друг.
3. Ну, во-первых, что вы пробовали, и в чем, по-видимому, проблема. какое сообщение об ошибке вы получаете в консоли браузера? кстати: не публикуйте изображения кода публикуйте код, в Stackoverflow есть отличная опция для подсветки синтаксиса.
4. кстати.: может быть, это не работает, потому что введенный IP-адрес не является допустимым IPv4, так как ни одно число не может быть больше 255 , а у вас есть 333 .
5. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.
Ответ №1:
Поскольку вы знаете, что это не экономия, и дизен предлагает любой тип реальной защиты, вот быстрое рабочее решение:
Он основан на вашем образе-коде. Я надеюсь, что это поможет или, по крайней мере, покажет вам другую точку зрения.
- Получите IP-адрес с помощью вызова выборки javascript (может не работать в более старом браузере)
Подробнуюfetch
информацию вы можете найти здесь https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API
Может не работать из-за настройки cors (но если это работает здесь, это может работать на вашем сервере). подробная информация о cors здесь: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS - Получите IP-адрес из ответа
- Проверьте, является ли IP-адрес недействительным
- Перенаправлять
<script>
fetch("https://api.ipify.org/") // call external service
.then( r => r.text() ) // requesting the text from the fetch response
.then( ip => { // this is the "security" function
console.info(`Your IP is ${ip}.` ); // Just a Info message in the console to see if the IP is returned
if(ip === "127.0.0.1"){ // I had to enter a valid IPv4 IP(even if it is only local)
alert('Error');
//... here you redirect ...
}
});
</script>
Информация/Обновление: Я использую другой подход (не jsonp), так jsonp
как ссылка не работала, когда я ее пробовал. Теперь это работает, поэтому ваш код должен работать, за исключением того, что введенный IP-адрес не является допустимым IPv4