![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Всем привет, подскажите, как сделать, чтобы программа базы данных работала только на одном компьютере?
Не имею представление как это сделать |
|
#2
|
||||
|
||||
|
Цитата:
Сделать сетевую БД на одном компе? Защититить БД от копирования? Или что-то другое? |
|
#3
|
|||
|
|||
|
да я хочу чтобы программка работала только на моем компьютере, даже если ее у меня кто скопирует то он не должна работать у другиих , а вот кикие способы Вы посоветуете и как по проще это организовать?
|
|
#4
|
|||
|
|||
|
В Интернете видел исходник для выяснения IP-адреса компьютера... Можно реализовать через это.
Узнаев свой IP-адрес компьютера, включаете этот сурс в код программы. После идет сравнение с IP-адресом, если несовпадает, то выход... Вообщем узнать IP можно так WinSock в UsesКод:
const WSVer = $101;
var IP : String;
WSAData : TWSAData;
P : PHostEnt;
Buf : array [0..127] of Char;
IP:= '';
if WSAStartup(WSVer, WSAData) = 0
then
begin
if GetHostName(@Buf, 128) = 0
then
begin
P:= GetHostByName(@Buf);
if P <> nil
then IP:= iNet_ntoa(PInAddr(p^.h_addr_list^)^);
end;
WSACleanup;
end;После сравниваете уже с известным вам IP. Вообщем должно работать Я с помощью IP делал привязанность программы к одному компьютеру (делал что-то вроде "регистрационного ключа"). |
|
#5
|
|||
|
|||
|
а куда вписывать этот код? в формкреат главной формы?
|
|
#6
|
||||
|
||||
|
ip- переделывается в 5 минут, и потом если у чела нет сетевухи или она выключена, тогда где вы его возьмете? Если хотите защитить БД то зашифруйте содержимое, если саму оболочку, то купите флэшку поставьте на нее пароль и свою прогу и всех делов. Если даже украдут флэшку без пароля ничего с нее не достанут. Флэшка сейчас копейки стоит.
|
|
#7
|
|||
|
|||
|
Я говорю про IP компьютера... А не модема!
Я получил таким образом свой IP и он не меняется уже неделю... А про IP модема: меняется только динамический IP, а это уже редкость. При выделенном подключении ничего такого не происходит. |
|
#8
|
||||
|
||||
|
Что вы имеете ввиду под "IP компьютера"?
|
|
#9
|
|||
|
|||
|
Я не помню как правильно называется.. Но это что-то вроде уникального индетификатора, который дается при установке операционной системы.
Вы попробуйте этот код. Вам выдаст не IP соединения, выдаваемого провайдером, а нечто другое, но именуемое IP. Ну а программу можно просто запоролить. Создать диалог "Введите пароль", если введенный пароль не совпадает с запрограммированным, то о запуске речи быть и не может Способов вообще много, ИМХО, дело в вашей фантазии ![]() |
|
#10
|
|||
|
|||
|
да в принципе можно купить флешку, но мне бы конечно лучше програмно ее защитить, вот создать диалог с паролем хорошая мысль, но что то меня смущает не много, ведь если пароль случайно узнают то программа пойдет в путешествие))))), а я ее для себя делаю, мой первый опыт так сказать,
Может все таки есть как подругому сделать? мне главное саму программку защитить а содержимое уж второстепенно |
|
#11
|
||||
|
||||
|
Вот так можно узнать имя компьютера, если это поможет
![]() Код:
procedure TForm1.Button1Click(Sender: TObject); var ComputerName: array[0..255] of Char; nSize: DWORD; begin nSize:= 256; GetComputerName(ComputerName, nSize); ShowMessage(ComputerName); end; |
|
#12
|
|||
|
|||
|
спасибо за инфо)
|
|
#13
|
||||
|
||||
|
Цитата:
![]() |
|
#14
|
|||
|
|||
|
Да понавесить всякой защиты...
Включаем авторизацию, запрет по IP... Вот такая идея:
Теперь объясню. Почему по Цезарю? Потому что шифровка простая, но зашифрованный логин будет трудно подобрать. Ну с привязкой к IP и паролем думаю понятно все... Блокировка сессии? Чтобы если кто-то запустил с вашего компьютера эту программу, но не смог открыть, то вы хотя бы будете знать, что кто-то пытался это сделать! А там уже с чудесами дедукции и вычислите ![]() |
|
#15
|
|||
|
|||
|
Да вот типа этого и надо, только вот я начинающий и как это организовать я не знаю
![]() |