Jump to content
Sign in to follow this  
Nicolaus Busch

Activation for runtime solutions

Recommended Posts

Hi forum,

we would like to protect a runtime we are developing by requesting activation through a webserver we own. Our problem is to determine some unique value for each computer. On windows we can use the volume-id of te harddisk that we get from the troi file plugin, but on mac?

We are using the usual troi plugins (dialog, file, text), scodigo's php plugin and some others, but can't find a solution.

Anyone out there with a good idea?

Share this post


Link to post
Share on other sites

Thanks for the input, but doesn't the NIC depend on the network connection used? As I understood this so far the NIC is not a property of the system but of th network adapter, so that a computer will return a different NIC when connected via WLAN, LAN or whatever.

Share this post


Link to post
Share on other sites

but doesn't the NIC depend on the network connection used?

Nope.

The NIC (or MAC) is a property of the networking hardware you have installed on the computer. The MAC is assigned to the hardware at the factory. (There are some networking components that let the end user configure the MAC address, but those are not the general case.) It does not matter if you are using the hardware or not. Since modern computers often have multiple ways of networking, e.g. wi-fi and ethernet cable, the Get(SystemNICAddress) often returns more than one value. The function will return a list of all of the values it finds on each of the hardware.

Since you can get wi-fi commonly on a USB stick and a wi-fi interface will generate a unique NIC entry in the list, a user could conceivably use their wi-fi USB stick as a hardware dongle to use your solution on multiple machines (only one at a time).

Similarly a user who has a wi-fi USB stick installed only temporarily would be inconvenienced if you required all NIC values on the machine to be identical to those you gathered when the software was licensed. The most convenient solution for the user is to require only one in the list be common to the ones you have on record. Presumably this would be the on-board networking (e.g. ethernet or motherboard wi-fi).

Edited by Guest

Share this post


Link to post
Share on other sites

Man you made my day! So it's much easier than we thought, I can end this day of work in time, my wife will be happy and who knows what happens next :P

I think it will come down to something like

ValueCount( FilterValues( $StoredNIC , $CurrentNIC)) > 0 and ValueCount( FilterValues( $StoredNIC , $CurrentNIC)) >= ValueCount($CurrentNIC)-1

That would allow for the one adress of the stick to be missing but not for the stick being used in a totally different system.

Share this post


Link to post
Share on other sites

You should, of course, contemplate how someone might bypass your "registration" mechanism and utilize your product. You can perhaps then plug those holes as well.

Steven

Share this post


Link to post
Share on other sites
GeoSteven    0

Good morning - I'm also developing a runtime that I need to provide similar protection. I'd be interested in learning more about how you intend to accomplish this or if you have found any authoritative references on the subject. - thanks

Share this post


Link to post
Share on other sites

Steven,

what we do is this: we have a server hosting a MySQL database. Here we store informations about our clients, how many licences they purchased etc. We use the SmartPill PHP-Plugin to communicate with this database. Upon first starting our programme the user has to enter a unique key. This key is also stored in the SQL database. The client will send the installation together with the list of NICs in his system to the SQL server were we check whether his system has already been activated or not. If not the number of available licences is reduced and the system activated or the customer gets a message that no more licences are available.

As our users depend on using our server to exchange data with other users it is easy for us to repeat this check each time a user connects to the server. Otherwise I would store the aproved list of NICs locally and check upon programme start whether we are still on an approved machine.

Hope that helps

Share this post


Link to post
Share on other sites
Blaze    0

I use the NIC address method in a runtime solution and it causes all kinds of trouble for my single user customers.

Is there no way for Filemaker to obtain the MAC address?

Share this post


Link to post
Share on other sites
Vaughan    101

The MAC address is unique for each network interface. Computers these days typically have >1 network interface, hence there will be >1 MAC address.

Built-in Bluetooth, wifi, ethernet are all possible network interfaces, as are portable USB devices.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×

Important Information

By using this site, you agree to our Terms of Use.