PDA

Просмотр полной версии : О сетевых адресах и кросс-платформенности Java



AiK
03.06.2005, 20:49
Или это не правильный подход
Угу. Во-первых, не на каждом компьютере есть сетевуха. Во-вторых, на мой взгляд это нарушение моего права на fair use - не вижу ни одной причины, почему я не могу использовать единожды купленную программу, скажем на стационарном компьютере и на собственном ноутбуке. В-третих, не вижу причины, по которой я не имею права менять сетевуху на своём компьютере, в-четвёртых - если я сделаю копию программы перед использованием, ты об этом никогда не узнаешь, в-пятых, java-программу вскрыть не тяжелее, чем perl-скрипт, ну и в шестых, ява по определению не имеет доступа к железу, ибо кросс-платформенная.

Oscar
03.06.2005, 21:39
AiK,

что ж, большое спасибо!

Все аргументы, кроме пятого и шестого, действительно справедливые!

Программа для работы над проэктами по разработке новых продуктов (Developing Tool, так сказать).

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

Почему шестой - нет?


String os = System.getProperty("os.name");
//Windows
if (os.startsWith("Windows")) return getMacAddress("cmd /c ipconfig /all");
//Linux | SunOS
if (os.equals("Linux") || os.equals("SunOS")) return getMacAddress("/sbin/ifconfig -a");


getMacAdress РэгЭкспом выдирает Мак Адрес.

И так далее ... вот и вся кроссплатформенность
(а если учитывать то, что с вероятностью 90% программа будет использоваться исключительно под Виндовз ... )

По поводу первых четырёх пунктов.
Мы просто хотим хоть как-то предотвратить, чтобы фирма при помощи нашей программы за месяц (лицензия, например) паралельно делала два или более проэктов.
Нет сетевой карты? Мало вероятно. Кто сейчас из разработчиков не пользуется интернетом? ..
Если вылетит сетевуха - дадим новую лицезнию, но разве это так уж часто случается?
Чтобы додуматься сделать копию перед первым запуском - нужно знать КАК работает программа, а этого им никто не скажет ))

Использовать на ноутбуке и стационарном компьютере - именно это мы и хотим предотвратить, чтобы не было паралельной работы над разными проэктами.
Нарушение "fair use" ? Сорри, но в лицензионном соглашении будет стоять. что программу можно использовать только на одном компьютере, кто не согласен - не использует.

Что ж, информацию о том, как получить Мак-Адрес я уже нашел.
О том стоит это делать или нет - можно конечно спорить.
Если считаешь нужным - перекинь топик в Флейм.

Absurd
03.06.2005, 21:47
в-пятых, java-программу вскрыть не тяжелее, чем perl-скрипт
Ну например, Intellj IDEA обработали каким-то обфусктором в резальтате чего структура пакетов у названия классов изуродованы до неузнаваемости. Правда, обратной стороной такого подхода является невозможность использования reflection.
Кроме того, я не видел ни одного декомпилятора байт-кода, который бы нормально реверсил код, скомпилированный javac из JDK 1.4 (максимиум - 1.3)

Oscar
03.06.2005, 21:56
Absurd,

мы используем Jshrink (http://www.e-t.com/jshrink.html)

Kolinus
06.06.2005, 12:26
Раз уж пошел флейм :)
В дополнение к высказыванию Айк'а: почти на всех современных сетевухах МАК можно менять.
Так что ...

evgeny_d
06.06.2005, 12:45
да уж... "кроссплатформенность" явы - это похоже только ярлык и ничего более... на C++ Builder тоже, в принципе можно писать так, чтобы и под винду компилировалось и под линуху (под QT, если я ничего не путаю).

Насчет возражений... интересно все-таки, привязка к МАК адресу - это единственное достойное средство от копирования?

И еще вопрос (раз уж пошла такая пьянка...).
to Kolinus: А как его менять? На уровне BIOS или софтом тоже можно?

Kolinus
06.06.2005, 13:28
Если встроенная сетевуха то в бивесе
если отдельная - то из винды либо софтом специательным

Absurd
06.06.2005, 13:56
да уж... "кроссплатформенность" явы - это похоже только ярлык и ничего более... на C++ Builder тоже, в принципе можно писать так, чтобы и под винду компилировалось и под линуху (под QT, если я ничего не путаю).

Текущий проект мы пишем и отлаживаем на виндах, хотя работает он под сорярой на Sparс'ах. Некоторые библиотеки написаны индусами через жопу. Но ничего, и они идентично работают и под виндой и под солярой.

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


В дополнение к высказыванию Айк'а: почти на всех современных сетевухах МАК можно менять

Микрософт тоже полагается на уникальность MAC адресов для генерации GUIDов и для активации приложений.
Кроме того, а не понимаю как могут одном сегменте сети сосуществовать два компьютера с одним MAC-адресом. Как их ARP будет различать? Ставить несколько сегментов сети ради увеличения количества инсталляций программы я бы ни стал.

AiK
06.06.2005, 16:01
Флейм так флейм :)
Несколько лет назад ради интереса отвязал Intellj IDEA от лицензии. Потом уже просили :) Обфускатор ну ни разу не лечит, если аппликуха просит ввести код, то дальше всё раскручивается на раз. Если нет возможности декомпильнуть - есть редакторы байткодов. В нескольких версиях подряд вся защита снималась изменением в нужном месте условия с равно на неравно. Потом мне это надоело, но судя по отзывам народ и без меня прекрасно справляется...

Код меня улыбнул. У меня 2 сетевухи, и я в и-нет выхожу со второй, а регексп скорее всего первый МАК адрес схавает.

Что касается двух одинаковых мак-адресов для разных компьютеров, то похоже про NAT все забыли. До NAT'а они разные, после - один на всех :)

evgeny_d
06.06.2005, 17:25
И все-таки я нифига не понял.
Как в пределах одной подсети могут быть 2 одинаковых МАК-адреса и причем здесь NAT?

AiK
06.06.2005, 18:01
evgeny_d, ну да, забыл, что Oscar МАК-адрес локально определяет, а не удалённо.

Но вот есть изъян в этой системе. Две реальные ситуации, были в разных лавках.
1. Закаченные проги помещаются на расшаренный диск, с доступом для не-админа только в режиме read-only.
2. Закаченные проги кидаются на болванки, и дальше распространяются только на них.

В обоих случаях, далеко не всегда тот, кто закачивал имел надобность в самой программе.

Oscar
06.06.2005, 18:12
AiK,
небольшая поправочка ))
мне тут обьяснили "политику компании" ))
мы будем сами первый раз устанавливать им программу с определением МАК-Адреса, лицензированием и т.д.

При таком раскладе скопировать программу перед первым запуском - невозможно ))

AiK
06.06.2005, 19:50
мы будем сами первый раз устанавливать им программу с определением МАК-Адреса
В таком случае, у вас похоже сейлзы неправильные. Если только логика программы не предусматривает работы именно одного пользователя в одной лавке.
Для таких случаев придуманы многопользовательские лицензии. При вашей политике партии у вас купят ровно столько лицензий, сколько нужно, да ещё и сэкономить на ком-нибудь постараются. Это если поштучно продавать. А вот если продавать "сетевые" лицензии, то можно легко продать пять лицензий по цене трёх для двух пользователей. При нулевой стоимости копирования это более чем оправдано. Вы, судя по всему, всё знаете о своих пользователях. Остаётся только найти такой объём лицензий, чтобы он с одной стороны не был слишком большим, с другой стороны давал пользователям некоторую свободу действий, и цена была бы с одной стороны не обременительной для клиента, а с другой выгодна вам (а она будет всегда выгодна, т.к. продавать вы будете больше :))
Я уже не говорю о том, что в вашем варианте ещё будут дополнительные расходы на переинсталляции.

Oscar
06.06.2005, 20:25
AiK,

Если теоретики и руководители - машиностроители,
а исполнители - студенты информатики,
и всё это происходит, пока что, на уровне кафедры университета - о каких продажах может идти речь? :)

До сих пор программа просто жёстко подганялась под каждого клиента, под определённый проэкт.
Вот-с, решили попытаться расшириться ))

Но до многопользовательских лицензий нам ещё далеко :D