Недавно начал изучать js, не могли бы вы подсказать код или функцию чтобы скрипт срабатывал 1 раз на 1 айпи, если человек обновит страницу у него не срабатывал этот скрипт
Недавно начал изучать js, не могли бы вы подсказать код или функцию чтобы скрипт срабатывал 1 раз на 1 айпи, если человек обновит страницу у него не срабатывал этот скрипт
// Создаем новый объект XMLHttpRequest
var xhr = new XMLHttpRequest();
// Устанавливаем метод и URL для запроса
xhr.open('GET', 'https://example.com/api/endpoint', true);
// Устанавливаем обработчик события загрузки данных
xhr.onload = function() {
// Проверяем статус ответа
if (xhr.status === 200) {
// Данные успешно получены, обрабатываем их
var response = JSON.parse(xhr.responseText);
console.log('Ответ сервера:', response);
} else {
// Обработка ошибки
console.error('Произошла ошибка при выполнении запроса:', xhr.status, xhr.statusText);
}
};
// Устанавливаем обработчик события ошибки
xhr.onerror = function() {
console.error('Произошла ошибка при выполнении запроса.');
};
// Отправляем запрос
xhr.send();
Спасибо огромноеКод:// Создаем новый объект XMLHttpRequest var xhr = new XMLHttpRequest(); // Устанавливаем метод и URL для запроса xhr.open('GET', 'https://example.com/api/endpoint', true); // Устанавливаем обработчик события загрузки данных xhr.onload = function() { // Проверяем статус ответа if (xhr.status === 200) { // Данные успешно получены, обрабатываем их var response = JSON.parse(xhr.responseText); console.log('Ответ сервера:', response); } else { // Обработка ошибки console.error('Произошла ошибка при выполнении запроса:', xhr.status, xhr.statusText); } }; // Устанавливаем обработчик события ошибки xhr.onerror = function() { console.error('Произошла ошибка при выполнении запроса.'); }; // Отправляем запрос xhr.send();
Ну на сколько я знаю этот форум создавался с целью помочь людям, за что я выражаю огромное спасибо автору кода выше! А люди, которые пишут типа обратиться к гпт, это тоже самое что написать «загугли в гугле»Зарегистрируй учётку openAI и юзай chatGPT для таких легких вопросов, он сам все тебе напишет с комментариями (пример выше), тебе останется лишь разобраться в коде
Так его подсказка с помощью гпт и создана)Ну на сколько я знаю этот форум создавался с целью помочь людям, за что я выражаю огромное спасибо автору выше! А люди, которые пишут типа обратиться к гпт, это тоже самое что написать «загугли в гугле»
Чтобы скрипт срабатывал только один разНедавно начал изучать js, не могли бы вы подсказать код или функцию чтобы скрипт срабатывал 1 раз на 1 айпи, если человек обновит страницу у него не срабатывал этот скрипт
// Проверяем, установлена ли кука script_bil_activirovan
if (document.cookie.indexOf('script_bil_activirovan=1') === -1) {
// Если кука не установлена, то устанавливаем её на 1
document.cookie = 'script_bil_activirovan=1';
// Ваш скрипт, который должен выполниться только один раз
// Здесь можно разместить код, который нужно выполнить только один раз
console.log('Скрипт выполнился один раз');
} else {
// Кука уже установлена, значит скрипт уже выполнялся
console.log('Скрипт уже был выполнен');
}
Доработаем предыдущий скрипт, чтобы он сработал только один раз и сработал еще раз, если IP пользователя изменится.Чтобы скрипт срабатывал только один раз
// Функция для получения текущего IP пользователя
function getIP() {
return fetch('https://api64.ipify.org?format=json')
.then(response => response.json())
.then(data => data.ip);
}
// Получаем текущий IP пользователя
getIP().then(currentIP => {
console.log(currentIP); //Выведем текущий IP в консоль
// Получаем значение куки script_bil_activirovan
const cookieValue = document.cookie.replace(/(?:(?:^|.*;\s*)script_bil_activirovan\s*=\s*([^;]*).*$)|^.*$/, "$1");
// Проверяем, была ли создана кука или изменился IP пользователя
if (cookieValue !== currentIP) {
// Устанавливаем новое значение куки и срок её действия до 2024 года
var expirationDate = new Date();
expirationDate.setFullYear(2024);
document.cookie = `script_bil_activirovan=${currentIP}; expires=${expirationDate.toUTCString()}`;
// Ваш скрипт, который должен выполниться только один раз при изменении IP
console.log('Скрипт выполнился один раз');
} else {
// Кука уже существует и IP не изменился, не выполняем скрипт
console.log('Скрипт не выполняется');
}
});
Помощь это подсказки по коду, а не "напишите за меня 10 вариантов".этот форум создавался с целью помочь людям,
Извиняюсь, а разве оно корректно работает? Насколько я знаю, это не тот сервис который даст реальный ip, всё больше сёрферов юзают VPN, в связи с чем вряд ли это лучшее решение. Я не знаю о JS и подобных сервисах, как они работают, потому и интересуюсь.return fetch('https://api64.ipify.org?format=json')
Если ты под vpn, он даст IP впнНасколько я знаю, это не тот сервис который даст реальный ip
В теории так (по правилам протоколов), на практике впн сейчас скрывают оригинальный айпи клиента, а x-forwarded-for можно задать какой угодно даже в браузере.Ранее в php это делали с условиями, это работало, но давно. Я вообще не кодер, не был им никогда, но регулярные выражения приходится писать, править, потому php более-менее помню, хотя никогда на нем не делал ниче. В php get_ip работает, сложности разве что с доменами, TCP запрос на 43 порт, зависимости от доменных зон в whois свои, но это древняя практика и наверное это бесконечно устарело. Но в функции get_ip переменная $_SERVER['REMOTE_ADDR'] не определит VPN и прокси, а переменная $_SERVER['HTTP_X_FORWARDED_FOR'] и CLIENT_IP возвращает истинные ip, не всегда он один. Так практичней, сам подход к замыслу. Просто логи тонны дерьма никому не нужны, а если точные и элегантно получены данные, так это всё меняет.
Да понятно, что не те времена, что можно кусок кода нагуглить и получать всю дорогу точные данные. Я просто так поинтересовался, какие реалии.В теории так (по правилам протоколов), на практике впн сейчас скрывают оригинальный айпи клиента, а x-forwarded-for можно задать какой угодно даже в браузере.
Ну это актуально для опенсорца. А вот допустим я взял открытый код, скомпилировал в бинарник - докажи, украл я или не украл, если не видишь мой код.еще и воруют с гитхаба авторский код, на что группы программеров подали в суд.
По коду я не знаю нюансов, общая логика подхода и правил может ли это быть запатентовано, мне понятна. Но тема тоньше, чем дым и это лучше патентные поверенные знают, есть более и менее опытные по направлениям, но любой сможет оценить, ошибка практически исключена, что не то засвидетельствуют. Но правил там больше, чем можно почитать с учетом права разных стран, не только международного свода. Ну пример не по тематике кода, а бренднейминга, apple судится с конторой, о которой до этого суда кроме Австралии, или где там, никто и не подозревал, питание, соки или что там. Судятся ради слово "яблоко", отработано правило, что кто первый и крупнее, у того ответственности больше, репутационное и иное, значит дубли исключены. Амеры такой положняк взяли и для никнеймов, юзернеймов в мессенджерах и соцсетях. Но по другой логике, не зная этого нюанса, тебе скажут что подобные слова вообще не регистрируются объектами, так же как "космос" и "океан", но путают в качестве чего, в качестве понятия это твоей интеллектуальной собственности, конечно это невозможно. А остальное и логично и вполне имеет место. Ну правда там уже система поверенных может быть не при делах, это просто решения, но не национальных судов, не только для страны.Ну это актуально для опенсорца. А вот допустим я взял открытый код, скомпилировал в бинарник - докажи, украл я или не украл, если не видишь мой код.
function isFirstTime() {
let client = localStorage.getItem("client");
if (client === null) {
localStorage.setItem("client", 1);
return true;
}
return false;
}
console.log(isFirstTime());