Как можно привязать комп к конкретной машине?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Юра П
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 23.12.2004 (Чт) 22:44

Как можно привязать комп к конкретной машине?

Сообщение Юра П » 19.03.2005 (Сб) 19:04

Задача привязать прогу к конкретной машине.
Есть ли какие-то функции возвращающий конретный уникальный номер для машины?

Я пробовал использовать функцию:

Public Function BIOS() As Long
Dim sDB As BIOS_DATE
Mid(sDB.s, 1, 1) = &HFFFF5
Mid(sDB.s, 2, 1) = &HFFFF5
Mid(sDB.s, 3, 1) = &HFFFF5
Mid(sDB.s, 4, 1) = &HFFFF5
Mid(sDB.s, 5, 1) = &HFFFF5
Mid(sDB.s, 6, 1) = &HFFFF5
Mid(sDB.s, 7, 1) = &HFFFF5
Mid(sDB.s, 8, 1) = &HFFFF5

'CopyMemory sDB, ByVal &HFFFF5, 8&
BIOS = DateSerial(Mid(sDB.s, 7, 2), Mid(sDB.s, 1, 2), Mid(sDB.s, 4, 2))
End Function

Она вроде как делает привязку к номеру Биоса.
Так вот у меня совпадали номера на разных машинах.

Подскажите к какому номеру (устройства) лучше всего привязываться?
И как?

Arcanoid
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 01.01.2005 (Сб) 15:44

Сообщение Arcanoid » 19.03.2005 (Сб) 19:10

Вот и мне тоже интересно! :lol:
Наверняка есть какой-нибудь уникальный Id компа...

Cryonyx
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 292
Зарегистрирован: 12.11.2004 (Пт) 15:40
Откуда: Net_SubStream

Сообщение Cryonyx » 19.03.2005 (Сб) 19:31

Привязывай к ИДу проца и к каждой его ножке :D
Если тебе не по сердцу мой путь,
Выбери сам или выбери с кем,
А мне по барабану вся эта муть -
Я не червонец, чтобы нравиться всем!
© К.Кинчев
--
Мой блог: щёлкай сюда

Alexander N. Samarin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 397
Зарегистрирован: 05.03.2005 (Сб) 20:59
Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине

Re: Как можно привязать комп к конкретной машине?

Сообщение Alexander N. Samarin » 19.03.2005 (Сб) 20:16

Юра П писал(а):Подскажите к какому номеру (устройства) лучше всего привязываться?

Привязавайся ко всему и сразу :D
На это не смотрите! Это не подпись!!!!!!

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 19.03.2005 (Сб) 20:18

HDD - по-идее, у каждого если не уникальный номер, то редко повторется

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 19.03.2005 (Сб) 20:18

Юра П, если ты используешь именно этот код, то он у тебя вообще ничего не делает.
Используй WMI чтобы получить серийный номер BIOS, жесткого диска или идентификатор операционной системы.
Lasciate ogni speranza, voi ch'entrate.

Alexander N. Samarin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 397
Зарегистрирован: 05.03.2005 (Сб) 20:59
Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине

Сообщение Alexander N. Samarin » 19.03.2005 (Сб) 20:22

alibek писал(а):Используй WMI чтобы получить серийный номер BIOS, жесткого диска или идентификатор операционной системы.

А как определить ID операционки?
На это не смотрите! Это не подпись!!!!!!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 19.03.2005 (Сб) 20:42

Смотря какой ID будет использован. Можно вытащить серийник, в идеале он должен быть уникален. Можно вытащить SID, если машина не входит в домен, этого вполне достаточно. Есть еще несколько параметров, которые генерируются при установке системы и редко совпадают на разных машинах.
Lasciate ogni speranza, voi ch'entrate.

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 19.03.2005 (Сб) 20:47

А может по какой нибудь хитрой формуле вычеслить уникальное число! напимер


Код: Выделить всё
sID=sqr((ID(cd-rom)+ID(HDD)+ID(windows)+ID(bios)+ID(FLOOP)))


как вам! :roll:
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 19.03.2005 (Сб) 20:49

Круто.
Т.е. купил прогу, и привод менять будет нельзя.
Lasciate ogni speranza, voi ch'entrate.

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 19.03.2005 (Сб) 20:49

ну....есть не большие не дочеты :D
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

Arcanoid
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 01.01.2005 (Сб) 15:44

Сообщение Arcanoid » 19.03.2005 (Сб) 23:14

... а может у юзера просто InputBox'ом ключ каждый раз спрашивать!?... :lol: :lol:

Jenizix
Географ
Географ
Аватара пользователя
 
Сообщения: 545
Зарегистрирован: 20.04.2004 (Вт) 20:52
Откуда: Москва

Сообщение Jenizix » 19.03.2005 (Сб) 23:25

Arcanoid писал(а):... а может у юзера просто InputBox'ом ключ каждый раз спрашивать!?... :lol: :lol:


Извращенец... :wink:
Ушел в себя, вернусь не скоро...

Если вам нужно сделать прозрачной только форму, а контролы на ней нет, то вам сюда!!!

Arcanoid
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 01.01.2005 (Сб) 15:44

Сообщение Arcanoid » 20.03.2005 (Вс) 0:42

Знаю!! :lol: :lol: :lol:

Alexander N. Samarin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 397
Зарегистрирован: 05.03.2005 (Сб) 20:59
Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине

Сообщение Alexander N. Samarin » 20.03.2005 (Вс) 13:10

alibek писал(а):Смотря какой ID будет использован. Можно вытащить серийник, в идеале он должен быть уникален.

Опять: как его вытащить? :roll:
На это не смотрите! Это не подпись!!!!!!

Starik
Обычный пользователь
Обычный пользователь
 
Сообщения: 73
Зарегистрирован: 05.11.2002 (Вт) 16:55
Откуда: Russia

Сообщение Starik » 20.03.2005 (Вс) 20:36

А как определить уникальный номер сетевой платы?
Где-то раньше я встречал, но не помню где (не нужно было), а сейчас часто стал сталкиваться с программами, привязанными с сетевой плате (к примеру проинженер.).

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 21.03.2005 (Пн) 10:47

Код: Выделить всё
'Function GetMACAddress() as String - ïîëó÷àåò ÌÀÑ àäðåñ ñåòåâîé êàðòû

Option Explicit

Public Const NCBASTAT As Long = &H33
Public Const NCBNAMSZ As Long = 16
Public Const HEAP_ZERO_MEMORY As Long = &H8
Public Const HEAP_GENERATE_EXCEPTIONS As Long = &H4
Public Const NCBRESET As Long = &H32

Public Type NET_CONTROL_BLOCK  'NCB
   ncb_command    As Byte
   ncb_retcode    As Byte
   ncb_lsn        As Byte
   ncb_num        As Byte
   ncb_buffer     As Long
   ncb_length     As Integer
   ncb_callname   As String * NCBNAMSZ
   ncb_name       As String * NCBNAMSZ
   ncb_rto        As Byte
   ncb_sto        As Byte
   ncb_post       As Long
   ncb_lana_num   As Byte
   ncb_cmd_cplt   As Byte
   ncb_reserve(9) As Byte ' Reserved, must be 0
   ncb_event      As Long
End Type

Public Type ADAPTER_STATUS
   adapter_address(5) As Byte
   rev_major         As Byte
   reserved0         As Byte
   adapter_type      As Byte
   rev_minor         As Byte
   duration          As Integer
   frmr_recv         As Integer
   frmr_xmit         As Integer
   iframe_recv_err   As Integer
   xmit_aborts       As Integer
   xmit_success      As Long
   recv_success      As Long
   iframe_xmit_err   As Integer
   recv_buff_unavail As Integer
   t1_timeouts       As Integer
   ti_timeouts       As Integer
   Reserved1         As Long
   free_ncbs         As Integer
   max_cfg_ncbs      As Integer
   max_ncbs          As Integer
   xmit_buf_unavail  As Integer
   max_dgram_size    As Integer
   pending_sess      As Integer
   max_cfg_sess      As Integer
   max_sess          As Integer
   max_sess_pkt_size As Integer
   name_count        As Integer
End Type
   
Public Type NAME_BUFFER
   name        As String * NCBNAMSZ
   name_num    As Integer
   name_flags  As Integer
End Type

Public Type ASTAT
   adapt          As ADAPTER_STATUS
   NameBuff(30)   As NAME_BUFFER
End Type

Public Declare Function Netbios Lib "netapi32.dll" _
   (pncb As NET_CONTROL_BLOCK) As Byte
     
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
   (hpvDest As Any, ByVal _
    hpvSource As Long, ByVal _
    cbCopy As Long)
     
Public Declare Function GetProcessHeap Lib "kernel32" () As Long

Public Declare Function HeapAlloc Lib "kernel32" _
    (ByVal hHeap As Long, ByVal dwFlags As Long, _
     ByVal dwBytes As Long) As Long
     
Public Declare Function HeapFree Lib "kernel32" _
    (ByVal hHeap As Long, _
     ByVal dwFlags As Long, _
     lpMem As Any) As Long


Public Function GetMACAddress() As String

  'çàïðàøèâàåì MAC Àäðåñ äëÿ ñåòåâîé êàðòû
  'âîçâðàùàåì ôîðìàòèðîâàííóþ ñòðîêó
   
   Dim tmp As String
   Dim pASTAT As Long
   Dim NCB As NET_CONTROL_BLOCK
   Dim AST As ASTAT

   NCB.ncb_command = NCBRESET
   Call Netbios(NCB)
   
  'Äëÿ ïîëó÷åíèÿ Media Access Control (MAC) àäðåñà äëÿ ñåòåâîé êàðòû
  'ïðîãðàììíûì ïóò¸ì, èñïîëüçóåòñÿ êîìàíäà Netbios() -
  'NCBASTAT ñ èìåíåì "*" â ïîëå NCB.ncb_CallName (â 16-ñèìâîëüíîé ñòðîêå).
   NCB.ncb_callname = "*               "
   NCB.ncb_command = NCBASTAT
   
  'Äëÿ ìàøèí ñ íåñêîëüêèìè ñåòåâûìè êàðòàìè Âàì íåîáõîäèìî èñïîëüçîâàòü
  'íîìåð LANA è âûïîëíÿòü êîìàíäó NCBASTAT äëÿ êàæäîãî. LANA íîìåð 0 âñåãäà
  'ñîîòâåòñòâóåò ïåðâîìó ñåòåâîìó àäàïòåðó. Êîíå÷íî ìîæíî èñïîëüçîâàòü LANA íîìåð
  'è äëÿ îäíîãî ñåòåâîãî àäàïòåðà, íî ýòî áóäåò ñ÷èòàòüñÿ êàê íåýôôåêòèâíîå
  'ïðîãðàììèðîâàíèå.
   NCB.ncb_lana_num = 0
   NCB.ncb_length = Len(AST)
   
   pASTAT = HeapAlloc(GetProcessHeap(), HEAP_GENERATE_EXCEPTIONS _
            Or HEAP_ZERO_MEMORY, NCB.ncb_length)
           
   If pASTAT = 0 Then
      Debug.Print "memory allocation failed!"
      Exit Function
   End If
   
   NCB.ncb_buffer = pASTAT
   Call Netbios(NCB)
   
   CopyMemory AST, NCB.ncb_buffer, Len(AST)
   
   tmp = Format$(Hex(AST.adapt.adapter_address(0)), "00") & " " & _
         Format$(Hex(AST.adapt.adapter_address(1)), "00") & " " & _
         Format$(Hex(AST.adapt.adapter_address(2)), "00") & " " & _
         Format$(Hex(AST.adapt.adapter_address(3)), "00") & " " & _
         Format$(Hex(AST.adapt.adapter_address(4)), "00") & " " & _
         Format$(Hex(AST.adapt.adapter_address(5)), "00")
           
   
   HeapFree GetProcessHeap(), 0, pASTAT
   
   GetMACAddress = tmp

End Function

Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Re: Как можно привязать комп к конкретной машине?

Сообщение codemaster » 21.03.2005 (Пн) 12:59

Юра П писал(а):Задача привязать прогу к конкретной машине.
Есть ли какие-то функции возвращающий конретный уникальный номер для машины?
И как?


Купи USB "пробку" от Alladin если твоя программа того стоит :wink:
//<-
Mit freundlichen Grüßen
//->

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 21.03.2005 (Пн) 14:43

я думаю, что данный вопрос вобще не уместен:
ну создашь зависимость твоей проги от какого-то номера, потом просто можно сделать безусловный переход в твоей программе и всё.

но всё-таки если так хочется, то лучший способ:
Код: Выделить всё
ФИО юзера+Имя организации+Время и Дата в момент регистрации

Alexander N. Samarin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 397
Зарегистрирован: 05.03.2005 (Сб) 20:59
Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине

Сообщение Alexander N. Samarin » 21.03.2005 (Пн) 14:58

kif
Код возвращает набор байтов. Это он, что ли уникален для каждого компа :?: :roll:
На это не смотрите! Это не подпись!!!!!!

Dron
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 11.03.2004 (Чт) 16:53
Откуда: Москва

Сообщение Dron » 21.03.2005 (Пн) 15:02

Задача привязать прогу к конкретной машине.
Есть ли какие-то функции возвращающий конретный уникальный номер для машины?

Пиши в реестр и не парься по этому поводу
Ламер - тупиковая форма жизни

Alexander N. Samarin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 397
Зарегистрирован: 05.03.2005 (Сб) 20:59
Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине

Сообщение Alexander N. Samarin » 21.03.2005 (Пн) 15:11

Dron писал(а):
Задача привязать прогу к конкретной машине.
Есть ли какие-то функции возвращающий конретный уникальный номер для машины?

Пиши в реестр и не парься по этому поводу

Сейчас юзеры настолько продвинутыми стали :shock: :oops: , что запросто пропишут то, что надо и то, что не надо в реестр. С тем же успехом можно пихать файлы в дебри операционки или просить не копировать эту программу друзьям :lol: :lol: :lol:
На это не смотрите! Это не подпись!!!!!!

Memfivosfey
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 17.02.2005 (Чт) 14:55

Сообщение Memfivosfey » 21.03.2005 (Пн) 15:12

А вот мне кажеться самый идеальный вариант, при первом старте
программы предлагать пользователю заполнить карточку, заранее предупредив конечно, что информация разглашаться не будет, что бы пользователь ничего не заподозрил...


1 - Число месяц год рождения (пользователя.)
2 - Ф.И.О. (Пользователя)
3 - Рост.
4 - Вес.
5 - Размер обуви.
6 - Объёмы груди, талии, бёдер в см.
7 - Дату рожд. Родственников ну хотя бы до второго колена.
8 - Ф.И.О. родственников - также до второго колена.
9 - Дата покупки компьютера.
10 - Полная его стоимость в $.
11 - Номер гарантийного талона.
12 - Размер экрана в Дюймах
13 - Размер монитора: Ширина, Высота, Глубина...
14 - Размер системки: Ширина, Высота, Глубина...
15 - Цвет системного блока.
16 - Цвет глаз пользователя.
17 - Цвет волос.
18 - Расположение компьютера в комнате.
19 - Площадь стола.
20 - Площадь комнаты.
21 - Площадь квартиры.
22 - Номер квартиры.
23 - Этаж.
24 - Улица.
25 - Номер дома.
26 - Город.
27 - Страна.
28 - В каком месте пользователь деньги хранит.


После генерить серийник и всё! :lol: :lol: :lol:
В программировании нет не решаемых проблемм, есть проблеммы на которые
мы не можем найти решение...

Alexander N. Samarin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 397
Зарегистрирован: 05.03.2005 (Сб) 20:59
Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине

Сообщение Alexander N. Samarin » 21.03.2005 (Пн) 15:35

Ну... :roll:
Как вариат, существовать может, но... :roll:
А где это все хранить :?: :( :? :) :wink: :D :lol:
На это не смотрите! Это не подпись!!!!!!

Морфий
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 119
Зарегистрирован: 11.01.2005 (Вт) 18:06

Сообщение Морфий » 21.03.2005 (Пн) 17:22

Alexander N. Samarin писал(а):А где это все хранить :?: :( :? :) :wink: :D :lol:

В файле, и при каждом запуске (если прога сетевая) проверять все эти данные на сервере.
Вот оно — счастье...

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 21.03.2005 (Пн) 17:26

ХАХА, читал сабж и плакалъ!

Комп можно привязать к конкретной машине шнурами из него выходящими. получится очень конкретно! :lol: :lol: :lol:

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 21.03.2005 (Пн) 18:02

Мне кажеца, что достаточно сделать привязку только к материнке...
Ведь в основном она определят целостность компа. Ну а проц, память, и тд. можно заменять.

IvanSh
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 20.03.2005 (Вс) 15:20
Откуда: Minsk

Сообщение IvanSh » 21.03.2005 (Пн) 19:39

кстати к процу привязаваться не стоит. Гдето слышал что на дюронах номера не навсех стоят (стояли?).
Наши люди лёгкими путями не идут!

Starik
Обычный пользователь
Обычный пользователь
 
Сообщения: 73
Зарегистрирован: 05.11.2002 (Вт) 16:55
Откуда: Russia

Сообщение Starik » 21.03.2005 (Пн) 21:19

kif, спасибо.

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 189

    TopList