Nicolaus Busch Posted September 8, 2010 Posted September 8, 2010 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?
Nicolaus Busch Posted September 8, 2010 Author Posted September 8, 2010 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.
TheTominator Posted September 8, 2010 Posted September 8, 2010 (edited) 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 September 8, 2010 by Guest
Nicolaus Busch Posted September 8, 2010 Author Posted September 8, 2010 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 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.
Steven H. Blackwell Posted September 9, 2010 Posted September 9, 2010 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
GeoSteven Posted September 10, 2010 Posted September 10, 2010 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
Nicolaus Busch Posted September 16, 2010 Author Posted September 16, 2010 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
Blaze Posted August 18, 2011 Posted August 18, 2011 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?
Vaughan Posted August 18, 2011 Posted August 18, 2011 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.
Recommended Posts
This topic is 4846 days old. Please don't post here. Open a new topic instead.
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 accountSign in
Already have an account? Sign in here.
Sign In Now