Какие параметры железа (инфу о материнке, BIOS, MAC-адрес и т.п.) можно узнать с помощью стандартных средств JAVA? Необходимо привязывать прогу к конкретной машине и соответственно встал вопрос об определении к чему конкретно привязываться. Буду рад любым предложениям.
Здравствуйте, lxAlexis, Вы писали:
A>Здравствуйте,
A>Какие параметры железа (инфу о материнке, BIOS, MAC-адрес и т.п.) можно узнать с помощью стандартных средств JAVA? Необходимо привязывать прогу к конкретной машине и соответственно встал вопрос об определении к чему конкретно привязываться. Буду рад любым предложениям.
A>С пасибо.
Можно запускать командные скрипты и читать, что они возвращают,
например
getmac — дадут mac address
fsinfo — можно получить серийник винчестера
Запускаешь через Runtime.getRuntime().exec(...), ответ парсишь, вот и все.
Работает 100%
если используешь jdk6, то там по-моему есть стандартные средства получения мак адреса, хотя я могу ошибаться.
Здравствуйте, Maxim Wirt, Вы писали:
A>>Какие параметры железа (инфу о материнке, BIOS, MAC-адрес и т.п.) можно узнать с помощью стандартных средств JAVA? Необходимо привязывать прогу к конкретной машине и соответственно встал вопрос об определении к чему конкретно привязываться.
MW>Можно запускать командные скрипты и читать, что они возвращают,
но тогда прога будет привязана к неконкретным командным скриптам, а не к конкретной машине
Здравствуйте, C0s, Вы писали:
C0s>Здравствуйте, Maxim Wirt, Вы писали:
A>>>Какие параметры железа (инфу о материнке, BIOS, MAC-адрес и т.п.) можно узнать с помощью стандартных средств JAVA? Необходимо привязывать прогу к конкретной машине и соответственно встал вопрос об определении к чему конкретно привязываться.
MW>>Можно запускать командные скрипты и читать, что они возвращают,
C0s>но тогда прога будет привязана к неконкретным командным скриптам, а не к конкретной машине
В принципе этот вариант с вызовом конкретных консольных приложений подходит. А какие консольные приложения (для каждой отдельно взятой платформы) возвращают информацию скажем о серийнике материнки или ещё чём-нибудь таком, желехном. MAC-адрес не очень подходит — их может быть несколько, тогда проблема определить, какой из них именно тот, что надо, а может вообще не быть, если, скажем, нет сетевухи и выход в инет через модем.
Здравствуйте, lxAlexis, Вы писали:
A>>>>Необходимо привязывать прогу к конкретной машине и соответственно встал вопрос об определении к чему конкретно привязываться.
A>В принципе этот вариант с вызовом конкретных консольных приложений подходит. А какие консольные приложения (для каждой отдельно взятой платформы) возвращают информацию скажем о серийнике материнки или ещё чём-нибудь таком, желехном. MAC-адрес не очень подходит — их может быть несколько, тогда проблема определить, какой из них именно тот, что надо, а может вообще не быть, если, скажем, нет сетевухи и выход в инет через модем.
если привязка к машине делается ради пользователя, то проще попросить его указать в конфиг-файле MAC-адрес или серийник материнки, или что там тебе нравится
а если это делается против пользователя, то просто жди, что он заменит запускаемые скрипты так, чтобы они выдавали тот output, который нужен для получения доступа к функциональности
В Вашей терминологии проверка делается «против пользователя». Мне необходимо получить независимо от пользователя какой-либо параметр (или набор параметров) системы, уникальный именно для этой машины и на основе этого параметра создать для клиента ключ. Какие консольные приложения могут вытаскивать из системы такую информацию?
Здравствуйте, lxAlexis, Вы писали: A>Какие параметры железа (инфу о материнке, BIOS, MAC-адрес и т.п.) можно узнать с помощью стандартных средств JAVA? Необходимо привязывать прогу к конкретной машине и соответственно встал вопрос об определении к чему конкретно привязываться. Буду рад любым предложениям.
Здравствуйте, lxAlexis, Вы писали:
A>проверка делается «против пользователя». Мне необходимо получить независимо от пользователя какой-либо параметр (или набор параметров) системы, уникальный именно для этой машины и на основе этого параметра создать для клиента ключ. Какие консольные приложения могут вытаскивать из системы такую информацию?
что касается консольных, то лучше сразу откажись от этой идеи
к примеру, mac-адреса моей машины можно получить вызовом c:\windows\system32\getmac.exe
у кого-то другого это будет, скажем, d:\winnt\system32\getmac.exe
про другие ОС я умолчу, проблема ведь не в этом. предположим, я скачал и поставил твою замечательную прогу, которая выполнила привязку к моей машине через getmac
ну а потом мне захотелось её переставить на другой компьютер. естественно, я уж придумаю как-нибудь, как подсунуть твоей программе getmac, который сделает нужный output.
лучше посмотри на ссылку, которую привёл Blazkowicz, там в конце упомянута JNI-библиотека, это, хотя бы, лучше, чем скрипты
ну и не забывай, что java-код поддаётся декомпиляции, а dllки можно подменять при желании
Здравствуйте, 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-ах речи не идёт. Пока вижу всё-таки главным вариантом консольные приложения.