Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Дата истечения ключевого файла 
V
    Опции темы
Antony41
Дата 11.3.2010, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 27.12.2008

Репутация: 1
Всего: 1



Всем привет! Пишу ShareWare программу. Принцип следующий: на сервере хранятся ключевые файлы, в каждом ключевом файле, есть дата истечения ключа. Хочу сделать так что бы при запуске клиентской программы, проверялась текущая дата с какого либо сервера допустим NTP сервака, и как только его дата (в его часовом поясе) больше той которая в ключе, программа блокирует ключевой файл! Так вот проблема в часовых поясах например у меня уже будет 25 число а в москве еще только 24, так как разница во времени +2 часа, Как сделать такую проверку мне нужно узнать сколько времени сейчас у пользователя, лучший вариант это узнать по IP адресу например вот
http://yandex.ru/yandsearch?text=%D0%BA%D0...D1%81&lr=57, но вдруг страницу на яндексе переделают что тогда? как вобще делаются подобные приложения, например антивирус доктор вэб, тоже как только истекает срок ключа сразу блокирует ключи.
PM MAIL   Вверх
kami
Дата 11.3.2010, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 23
Всего: 72



Почему бы клиенту не спрашивать дату у своего сервера? причем, запрашивать в UTC формате? 
Потом - берем на клиенте LocalTime, вычитаем SystemTime (UTC). тем самым получаем на сколько время клиента разнится с "глобальным". Добавляем эту разницу к полученному от своего сервера и имеем реальное время часового пояса пользователя (в том случае, если он выставил его себе правильно), а не то, которое выставил себе клиент...
Этим ликвидируются все неясности локальных настроек, устраняется зависимость от третьих сервисов, закрытых портов и система контроля будет приведена к единому знаменателю...

Это сообщение отредактировал(а) kami - 11.3.2010, 22:47
PM MAIL WWW   Вверх
Antony41
Дата 12.3.2010, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 27.12.2008

Репутация: 1
Всего: 1



Огромное спасибо
PM MAIL   Вверх
Snowy
Дата 12.3.2010, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



NTP и SNTP протоколы передают дату и время по гринвичу.
PM MAIL   Вверх
darkmamba
Дата 13.3.2010, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 16.10.2008

Репутация: нет
Всего: 1



На компе клиента нельзя дату сверять.
PM MAIL   Вверх
Antony41
Дата 13.4.2010, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 27.12.2008

Репутация: 1
Всего: 1



Как же быть тогда просто ни как в голове не укладывается?

Добавлено через 13 минут и 44 секунды
Делать синхронизацию, каждый раз например каждые 2 часа, думаю неверный вариант, так как сервера синхронизации не всегда могут принимать и обрабатывать запросы, а тем более не всегда работают
PM MAIL   Вверх
Демо
Дата 13.4.2010, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 30
Всего: 50



Почему бы вместе с датой в ключевом файле на сервере не хранить признак того, что ключ уже не действует?


--------------------
    
PM MAIL ICQ Skype   Вверх
Akella
Дата 14.4.2010, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



А если нет доступа у NTP серверу...
PM MAIL   Вверх
Antony41
Дата 15.4.2010, 04:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 27.12.2008

Репутация: 1
Всего: 1



Все ключевые файлы будут хранится на сервере, в каждом ключевом файле будет первый параметр, день месяц или год, второй это значение.
Например пользователь хочет активировать клиента, и вводит код активации, происходит обращение к ключевому файлу на сервере, читается параметр например Day 7 значит к текущей дате должно прибавиться 7 дней это и будет датой истекающего срока

Думаю правильным решением будет отправить команду серверу, а сервер при активации возмет своё время, и при каждом обращении проверять. На сервере производить синхронизацию например каждый час, и если срок в ключевом файле истёк, то блокировать его)
PM MAIL   Вверх
former
Дата 15.4.2010, 07:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 5
Всего: 17



Antony41,  а если твоя программа будет установлена на компьютере, который не подключен к Интернету в силу определенных причин? Или, например, человек поставил программу, активировал и отключил комп от сети. Ведь, приведенные тобой в пример др. веб, да и каспер, все равно реагируют на истечение ключа.
Я бы сделал так:
Создал бы службу Wind0w$ для своей программы, которая бы следила за всем этим. После установки использовал бы ее для активации программы на сервере. В активированном ключевом файле хранил бы временные метки активации и срока действия ключа, полученные с сервера. При запуске программы проверял бы запущена служба или нет и истечение срока действия ключа. При наличии активного подключения сверялся бы с сервером активации. Кроме того, служба следила бы за переводом календаря и часов пользователя.
Дополнительно можно взаимно отслеживать изменение программы и службы пользователями (простенькая защита от перекомпилляции).

Это сообщение отредактировал(а) former - 15.4.2010, 11:33


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Antony41
Дата 15.4.2010, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 27.12.2008

Репутация: 1
Всего: 1



Конечно это всё верно, для моего варианта проще, так как программа не имеет смысла без соединения с интернетом. Спасибо! Теперь хоть знать буду как изобретать программы не связанные с интернетом.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1421 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.