Чтение параметров железа через JAVA
От: lxAlexis  
Дата: 05.07.07 09:45
Оценка:
Здравствуйте,

Какие параметры железа (инфу о материнке, BIOS, MAC-адрес и т.п.) можно узнать с помощью стандартных средств JAVA? Необходимо привязывать прогу к конкретной машине и соответственно встал вопрос об определении к чему конкретно привязываться. Буду рад любым предложениям.

С пасибо.
Re: Чтение параметров железа через JAVA
От: Maxim Wirt Россия http://itodo.mawisoft.com
Дата: 05.07.07 16:06
Оценка:
Здравствуйте, lxAlexis, Вы писали:

A>Здравствуйте,


A>Какие параметры железа (инфу о материнке, BIOS, MAC-адрес и т.п.) можно узнать с помощью стандартных средств JAVA? Необходимо привязывать прогу к конкретной машине и соответственно встал вопрос об определении к чему конкретно привязываться. Буду рад любым предложениям.


A>С пасибо.


Можно запускать командные скрипты и читать, что они возвращают,
например

getmac — дадут mac address
fsinfo — можно получить серийник винчестера

Запускаешь через Runtime.getRuntime().exec(...), ответ парсишь, вот и все.

Работает 100%

если используешь jdk6, то там по-моему есть стандартные средства получения мак адреса, хотя я могу ошибаться.
Re[2]: Чтение параметров железа через JAVA
От: C0s Россия  
Дата: 05.07.07 16:09
Оценка:
Здравствуйте, Maxim Wirt, Вы писали:

A>>Какие параметры железа (инфу о материнке, BIOS, MAC-адрес и т.п.) можно узнать с помощью стандартных средств JAVA? Необходимо привязывать прогу к конкретной машине и соответственно встал вопрос об определении к чему конкретно привязываться.


MW>Можно запускать командные скрипты и читать, что они возвращают,


но тогда прога будет привязана к неконкретным командным скриптам, а не к конкретной машине
Re[3]: Чтение параметров железа через JAVA
От: lxAlexis  
Дата: 06.07.07 08:42
Оценка:
Здравствуйте, C0s, Вы писали:

C0s>Здравствуйте, Maxim Wirt, Вы писали:


A>>>Какие параметры железа (инфу о материнке, BIOS, MAC-адрес и т.п.) можно узнать с помощью стандартных средств JAVA? Необходимо привязывать прогу к конкретной машине и соответственно встал вопрос об определении к чему конкретно привязываться.


MW>>Можно запускать командные скрипты и читать, что они возвращают,


C0s>но тогда прога будет привязана к неконкретным командным скриптам, а не к конкретной машине


В принципе этот вариант с вызовом конкретных консольных приложений подходит. А какие консольные приложения (для каждой отдельно взятой платформы) возвращают информацию скажем о серийнике материнки или ещё чём-нибудь таком, желехном. MAC-адрес не очень подходит — их может быть несколько, тогда проблема определить, какой из них именно тот, что надо, а может вообще не быть, если, скажем, нет сетевухи и выход в инет через модем.
Re[4]: Чтение параметров железа через JAVA
От: C0s Россия  
Дата: 06.07.07 08:55
Оценка: 3 (1)
Здравствуйте, lxAlexis, Вы писали:

A>>>>Необходимо привязывать прогу к конкретной машине и соответственно встал вопрос об определении к чему конкретно привязываться.


A>В принципе этот вариант с вызовом конкретных консольных приложений подходит. А какие консольные приложения (для каждой отдельно взятой платформы) возвращают информацию скажем о серийнике материнки или ещё чём-нибудь таком, желехном. MAC-адрес не очень подходит — их может быть несколько, тогда проблема определить, какой из них именно тот, что надо, а может вообще не быть, если, скажем, нет сетевухи и выход в инет через модем.


если привязка к машине делается ради пользователя, то проще попросить его указать в конфиг-файле MAC-адрес или серийник материнки, или что там тебе нравится
а если это делается против пользователя, то просто жди, что он заменит запускаемые скрипты так, чтобы они выдавали тот output, который нужен для получения доступа к функциональности
Re[5]: Чтение параметров железа через JAVA
От: lxAlexis  
Дата: 06.07.07 09:14
Оценка:
Спасибо за ответ.

В Вашей терминологии проверка делается «против пользователя». Мне необходимо получить независимо от пользователя какой-либо параметр (или набор параметров) системы, уникальный именно для этой машины и на основе этого параметра создать для клиента ключ. Какие консольные приложения могут вытаскивать из системы такую информацию?
Re: Чтение параметров железа через JAVA
От: Blazkowicz Россия  
Дата: 06.07.07 09:19
Оценка:
Здравствуйте, lxAlexis, Вы писали:
A>Какие параметры железа (инфу о материнке, BIOS, MAC-адрес и т.п.) можно узнать с помощью стандартных средств JAVA? Необходимо привязывать прогу к конкретной машине и соответственно встал вопрос об определении к чему конкретно привязываться. Буду рад любым предложениям.

http://rsdn.ru/forum/message/2258829.1.aspx
Автор: rademit
Дата: 11.12.06
Re[6]: Чтение параметров железа через JAVA
От: C0s Россия  
Дата: 06.07.07 09:42
Оценка:
Здравствуйте, lxAlexis, Вы писали:

A>проверка делается «против пользователя». Мне необходимо получить независимо от пользователя какой-либо параметр (или набор параметров) системы, уникальный именно для этой машины и на основе этого параметра создать для клиента ключ. Какие консольные приложения могут вытаскивать из системы такую информацию?


что касается консольных, то лучше сразу откажись от этой идеи
к примеру, mac-адреса моей машины можно получить вызовом c:\windows\system32\getmac.exe
у кого-то другого это будет, скажем, d:\winnt\system32\getmac.exe

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

лучше посмотри на ссылку, которую привёл Blazkowicz, там в конце упомянута JNI-библиотека, это, хотя бы, лучше, чем скрипты
ну и не забывай, что java-код поддаётся декомпиляции, а dllки можно подменять при желании
Re[7]: Чтение параметров железа через JAVA
От: lxAlexis  
Дата: 06.07.07 10:55
Оценка:
Здравствуйте, C0s, Вы писали:

C0s>Здравствуйте, lxAlexis, Вы писали:


A>>проверка делается «против пользователя». Мне необходимо получить независимо от пользователя какой-либо параметр (или набор параметров) системы, уникальный именно для этой машины и на основе этого параметра создать для клиента ключ. Какие консольные приложения могут вытаскивать из системы такую информацию?


C0s>что касается консольных, то лучше сразу откажись от этой идеи

C0s>к примеру, mac-адреса моей машины можно получить вызовом c:\windows\system32\getmac.exe
C0s>у кого-то другого это будет, скажем, d:\winnt\system32\getmac.exe

C0s>про другие ОС я умолчу, проблема ведь не в этом. предположим, я скачал и поставил твою замечательную прогу, которая выполнила привязку к моей машине через getmac

C0s>ну а потом мне захотелось её переставить на другой компьютер. естественно, я уж придумаю как-нибудь, как подсунуть твоей программе getmac, который сделает нужный output.

C0s>лучше посмотри на ссылку, которую привёл Blazkowicz, там в конце упомянута JNI-библиотека, это, хотя бы, лучше, чем скрипты

C0s>ну и не забывай, что java-код поддаётся декомпиляции, а dllки можно подменять при желании

ОК, с помощью JACOB можно использовать COM для Win32. А как можно узнать подобную информацию о Mac и Unix-подобных системах?
По поводу вскрытия, требования к безопасности невысокие – главное, чтобы ламеры не смогли вскрыть, так что о подмене вывода или прочих таких ugly hack-ах речи не идёт. Пока вижу всё-таки главным вариантом консольные приложения.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.