• XSS.stack #1 – первый литературный журнал от юзеров форума

Js помощь

Ineversober111

Премиум
Premium
Регистрация
28.10.2022
Сообщения
90
Реакции
12
Депозит
0.08 Ł и др.
Недавно начал изучать 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 для таких легких вопросов, он сам все тебе напишет с комментариями (пример выше), тебе останется лишь разобраться в коде
 
Зарегистрируй учётку openAI и юзай chatGPT для таких легких вопросов, он сам все тебе напишет с комментариями (пример выше), тебе останется лишь разобраться в коде
Ну на сколько я знаю этот форум создавался с целью помочь людям, за что я выражаю огромное спасибо автору кода выше! А люди, которые пишут типа обратиться к гпт, это тоже самое что написать «загугли в гугле»
 
Ну на сколько я знаю этот форум создавался с целью помочь людям, за что я выражаю огромное спасибо автору выше! А люди, которые пишут типа обратиться к гпт, это тоже самое что написать «загугли в гугле»
Так его подсказка с помощью гпт и создана)
Это не единственный вариант который он может выдать, задай ему такой же свой вопрос и просто пусть предлагает варианты
Я не стараюсь как либо грубо отнестись к твоему вопросу , я стараюсь тоже помочь…
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Недавно начал изучать js, не могли бы вы подсказать код или функцию чтобы скрипт срабатывал 1 раз на 1 айпи, если человек обновит страницу у него не срабатывал этот скрипт
Чтобы скрипт срабатывал только один раз
0. Проверяем установлена ли кука script_bil_activirovan на 1
1. В начале выполнения скрипта устанавливай пользователю куку script_bil_activirovan на 1
3. Если скрипт уже был активирован, не выполняем его повторно
4. Если скрипт не был активирован и куки script_bil_activirovan нет, значит выполняем скрипт и устанавливаем куку

Код:
// Проверяем, установлена ли кука script_bil_activirovan
if (document.cookie.indexOf('script_bil_activirovan=1') === -1) {
  // Если кука не установлена, то устанавливаем её на 1
  document.cookie = 'script_bil_activirovan=1';

  // Ваш скрипт, который должен выполниться только один раз
  // Здесь можно разместить код, который нужно выполнить только один раз
  console.log('Скрипт выполнился один раз');
} else {
  // Кука уже установлена, значит скрипт уже выполнялся
  console.log('Скрипт уже был выполнен');
}

Этот код сработает только на конкретном каком-то сайте с доменом.
Если ты его будешь использовать локально без домена, он не сработает

Изначально кука, созданная без указания срока действия (параметра expires), будет считаться "сессионной" и будет существовать только в течение текущей сессии браузера. Это означает, что кука будет удалена, когда пользователь закроет браузер или завершит сеанс. Если вы хотите, чтобы кука сохранялась после закрытия браузера, необходимо установить для неё срок действия.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Чтобы скрипт срабатывал только один раз
Доработаем предыдущий скрипт, чтобы он сработал только один раз и сработал еще раз, если IP пользователя изменится.
Для этого:
1. Создадим функцию которая определит текущий IP пользователя
2. Определим равен ли IP записаный в куках текущему IP
3. Если текущий IP не равен IP записаному в куках или куки не установлены - выполняем скрипт
4. Создаем куку и записываем туда IP, чтобы скрипт не сработал повторно при обновлении страницы с этого же браузера
5. Если текущий IP равен IP записаному в куках - выводим в консоль 'Скрипт не выполняется'

Таким образом скрипт сработает только один раз для одного IP
И сработает еще раз при обновлении страницы, если IP пользователя изменится

Но при этом, если ты зайдешь с другого браузера с этим же IP - скрипт все равно сработает т.к. в новом браузере кука не установлена. Чтобы этого избежать, нужно записывать IPшники для которых скрипт уже выполнялся в базу на сервере и потом сверять их с 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 и подобных сервисах, как они работают, потому и интересуюсь.
Ранее в php это делали с условиями, это работало, но давно. Я вообще не кодер, не был им никогда, но регулярные выражения приходится писать, править, потому php более-менее помню, хотя никогда на нем не делал ниче. В php get_ip работает, сложности разве что с доменами, TCP запрос на 43 порт, зависимости от доменных зон в whois свои, но это древняя практика и наверное это бесконечно устарело. Но в функции get_ip переменная $_SERVER['REMOTE_ADDR'] не определит VPN и прокси, а переменная $_SERVER['HTTP_X_FORWARDED_FOR'] и CLIENT_IP возвращает истинные ip, не всегда он один. Так практичней, сам подход к замыслу. Просто логи тонны дерьма никому не нужны, а если точные и элегантно получены данные, так это всё меняет.
Но разумеется сейчас без фингерпринтов самых разных, вплоть до экзотических в виде аналитики набора текста в формах ввода на форумах, по ряду простых признаков ввода текста автор и не-автор обнаружими автоматически. Техника не для паблика, но и не для деанона. Там такие скрипты, что я не знаю кто их сможет просто раскрыть, сделано так, что бы не очень понимали что именно прослушивают.
Вообще нужно понимать замысел, а не видение техзадачи, задача понятна, а замысел и конструкция нет (если они известны). Возможно это костыли и не стоило бы новичкам дебютировать с косяков. Просто предположение...
Что до java, мне один знакомый преподаватель курсов, кандидат технических наук объяснил так, что курсы по java это практически академический курс наук, и проходить курсы следует в строго определенной последовательности. Множество фатальных ошибок в разработке связаны именно с этим, перескоком через уровень по опыту и уму. Работодатели не исходят из того, а что если случится пиздец? Поэтому никто не пытается выискать доказательства, что кандидат хуевый. Если он делает, значит может, или быстрее других сможет. А там не всё так. Некоторые практики по опыту и навыкам растут, могут senior задание получить и успешно выполняют, а серьезное нечто не могут и косячат в мелочах, дело не в группе, руководителях и беке и фронте, которые нельзя путать, не в философии архитектуры приложений, и не в том, что зажали бабла на аудит и ИБ, дело в этом. Мне так объяснили. Мнение довольно интригующее, но это личное мнение, а не реклама неких образовательных услуг. Люди просто java не изучали последовательно. Ну там десятки курсов, я не очень понимаю что даст пять или восемь последовательных курсов, ну впрочем это слушателям виднее, просто так сертификаты не коллекционируют, накладно слишком и сложно....
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Насколько я знаю, это не тот сервис который даст реальный ip
Если ты под vpn, он даст IP впн
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Ранее в 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 можно задать какой угодно даже в браузере.
 
В теории так (по правилам протоколов), на практике впн сейчас скрывают оригинальный айпи клиента, а x-forwarded-for можно задать какой угодно даже в браузере.
Да понятно, что не те времена, что можно кусок кода нагуглить и получать всю дорогу точные данные. Я просто так поинтересовался, какие реалии.
То что я знаю именно о получении фингерпринтов, айпишников, иных данных идентификаторов, слишком сложные решения и не для всех, не всегда только за деньги.
Какие-то хитрости вроде задействования протоколов и подключений DLNA например, или нечто подобное, это не спешат продать, потому что это всё равно выкупят и дороже. Не все лучшие решения открыты и доступны. Если по стране, в рамках органов, СОРМ не нужен, это удобство и эффективность организации. Решений множество по мониторингу трафика и обмену. Есть частные базы, идентификаторы, маки, айпишниги, самые разные фингерпринты, не только стандартные канвасы но многое прочее. И органы и бизнес и провайдеры, пасутся все, это непонятно на каких основаниях вообще существует, но выгодно всем. Потом не антивиры, но системы корпоративной безопасности выходят на контакт, по сути предлагают обмен и сотрудничество, и тоже выгодно. Это существует, если не знаешь, подумаешь что человек придумал какую то новую главу продолжения книги Сноудена. )))
Естественно не для деанона, а для коммерции могут пилить решение, не всё покупают для перепродажи или поглощения, иногда для заморозки, или направления в другое русло.
Что уж о коде говорить, роботы пишут не хуже, еще и воруют с гитхаба авторский код, на что группы программеров подали в суд. Это кстати хороший повод подружится с патентными поверенными, зарегистрировать свое творение, оно копейки стоит, но один выстрел, и по тихому просто заминается всё. Там если суд и будет, то это еще выгодней. Поэтому авторское право на произведение, или интеллектуальную собственность лучше райтить. Профи сами на вас выйдут и косяк не допустят. Это просто к слову, не по теме.
А без этого, если нечто стоящее - спиздят и даже на пиво не скинут. Логика такова что вы это дарите, а раз дарите, то ничего не нужно взамен, условий нет.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
еще и воруют с гитхаба авторский код, на что группы программеров подали в суд.
Ну это актуально для опенсорца. А вот допустим я взял открытый код, скомпилировал в бинарник - докажи, украл я или не украл, если не видишь мой код.
 
Ну это актуально для опенсорца. А вот допустим я взял открытый код, скомпилировал в бинарник - докажи, украл я или не украл, если не видишь мой код.
По коду я не знаю нюансов, общая логика подхода и правил может ли это быть запатентовано, мне понятна. Но тема тоньше, чем дым и это лучше патентные поверенные знают, есть более и менее опытные по направлениям, но любой сможет оценить, ошибка практически исключена, что не то засвидетельствуют. Но правил там больше, чем можно почитать с учетом права разных стран, не только международного свода. Ну пример не по тематике кода, а бренднейминга, apple судится с конторой, о которой до этого суда кроме Австралии, или где там, никто и не подозревал, питание, соки или что там. Судятся ради слово "яблоко", отработано правило, что кто первый и крупнее, у того ответственности больше, репутационное и иное, значит дубли исключены. Амеры такой положняк взяли и для никнеймов, юзернеймов в мессенджерах и соцсетях. Но по другой логике, не зная этого нюанса, тебе скажут что подобные слова вообще не регистрируются объектами, так же как "космос" и "океан", но путают в качестве чего, в качестве понятия это твоей интеллектуальной собственности, конечно это невозможно. А остальное и логично и вполне имеет место. Ну правда там уже система поверенных может быть не при делах, это просто решения, но не национальных судов, не только для страны.
А по тематике кода. Опенсорс по разному патентуют, точнее с различными подходами, часть кода в том числе. И бинарники, но там, я насколько помню, нужна часть кода, давно сталкивался, забыл по бинарной кухне. Ну патентовалось и такое. Реально, а не я так считаю. Просто точно не скажу что именно входит, какие страны и прочее, но патентные скажут. Ну тут надо понимать, во- первых, цена возрастает уже, если стартап или проект оценки, продажная и иная, при чем дороже копья затратного на филькину грамоту эту. Во-вторых, смотря что и какие основания, ну сказать что это лишнее движение может только болван. Это отнимет до 2 часов времени, где и что и какие нюансы. Коды и программка и программные комплексы бывают разными.
Плюс в штатах закрытые технологии так называемые без разглашения и для контроля патентуются. Вот в бинарниках ты не прав, это патентуется без разглашения, специальный раздел есть. Но это США, где ты за открытие письма можешь сесть как за шпионаж или госизмену, если в письме будет коммерческая тайна. Не всегда для этого копирайт нужен. Не поверишь, может хватить диплома. Факт передачи и ущерба? Есть суды присяжных, они решат. Если строго технически - там не нужна железная доказуха. Я увы сталкивался только с самым дерьмом, листая дела. Про самое вонючее дерьмо ФБР я знаю многое. )) Поэтому могу себе позволить. Разбираешь дела, Фарго это мой любимый город, кажется уже и искать нечего. Там есть дела о возможно самых конченных федералах, это довольно интересно. Что есть Фарго, округ Касс? Это крайняя точка по пути в Канаду, штат особый, Дакота и северная и отмороженная, там монополька и не очень богато, ну разумеется федералы там самые конченные. Сериал и фильм братьев Коэн не с потолка так назван. ))
Профи спроси, они расскажут. Плюс международные нюансы. Почитай, пригодится. Клерки обыкновенно корпоративного права, из юрконтор платят за пакет аналитического софта, "предсказания" верняковых, перспективных тем. Если бы ты знал сколько, то не поверил бы. Я не про США говорю, акул бизнеса. Хотя какие там "предсказания" могут быть? Такие предсказания вложений нужны самому, ну они бы не продавались, но оно по меньшей мере отсеивает ворох номинальных патентов, ручной отбор изучения смысла изложенного. За рубежом, это вложения в патенты, технологии, перепродажа. Сквотинг но в рамках правового поля. Да и потом. Не наварится на маклерах и спекулянтах грешно, зачем было учится, если не можешь их наебать. ))) А так, это такая масть корпоративных консалтингеров (strategic consulting manager) и лойеров (lawyer).
В штатах статистическая средняя цена софтверного пакета, патентования стоит 230-250 тысяч долларов (разные годы). Ну короче говоря без предисторий вроде судилища Alice corp., после которого начали этот пузырь надувать, это второе место после ai по средней цене за IT секторально, а ИИ для бизнеса это свыше ляма средний прайс разработки, аренды вычислений, эксклюзивных услуг, не важно.
 
Последнее редактирование:
Если речь идет о клиентском JavaScript, то можно использовать не cookie, а специальное хранилище localStorage.

JavaScript:
function isFirstTime() {
    let client = localStorage.getItem("client");

    if (client === null) {
        localStorage.setItem("client", 1);
        return true;
    }
    
    return false;
}

console.log(isFirstTime());

Если же речь идет о том, что пользователю сайта нужно выдавать новый контент только с уникальным IP, то это решается на уровне сервера, а не клиентским скриптом.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх