Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Chris Miller on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

copy protection AGAIN.

Status
Not open for further replies.

newtofoxpro

Programmer
Sep 16, 2007
301
IN
I am developing and distributing my application developed in fpw26 from last 10 years. For copy protection I am using BIOSDATE. For some reason, I am going to migrate my application in VFP8. I used SEARCH tool to find out similar post. And I found like CPU-ID, HDD-Serial No., Mac-Address etc., It's good information works similar to BIOSDATE.

Please don't advise " Copying is the best way of 'advertising' the app you want to sell. "

I have distributed my application where I can't go, its far away from my city. BIOSDATE works fine for me. Yet, I know my user mis-using my application. How ?

For the first time I installed myapp to user-pc and locked by BIOSDATE. After couple of months user ring/phone me, "MY PC CRASH-BURN-OUT OR I UPGRADE WITH NEW PC AND I SAVED ONLY MYAPP.DBF, I HAVE PURCHASED NEW PC. SO PLEASE SEND ANOTHER COPY" I have to trust him, and send another copy.

One solution I found is USB-PEN-DRIVE.

oWMi = getobject("winmgmts://")
col = oWMI.ExecQuery("Select * from win32_diskdrive")
OutString=""
for each disk in col
OutString=disk.PNPDeviceID
IF OutString="USB"
EXIT
ENDIF
NEXT
RETURN OutString

I am not sure, how it is safe. Please advise, is it safe ? As well as I wish to know how expert members distribute their application ?
 
It's still not going to help him much, the IP won't be unique - inside the LAN in a clients organisation might be, but how many companies use 192.168.0.x or similar address ranges?

Once the request leaves the clients office, it will almost certainly be NAT protected - so the IP address will be shared by perhaps a few hundred or more users... so any server side processing will not be able to differentiate between PCs

Regards

Griff
Keep [Smile]ing

There are 10 kinds of people in the world, those who understand binary and those who don't.
 
any server side processing will not be able to differentiate between PCs

Yes, that's true, but that's the whole point of this method. It identifies the user's network, not the individual PC. If a company has a hundred users, you won't need a separate entry in the customer table for each one.

I ought to add that I don't necessarily advocate this method. My client decided to use it after weighing up the business factors. It wouldn't be my first choice.

Mike

__________________________________
Mike Lewis (Edinburgh, Scotland)

Visual FoxPro articles, tips, training, consultancy
 
Going back to the method of determining the IP address within the server-side language, I recall once doing this myself in my own humble attemtps to develop in PHP.

If I remember right, I used something like:

Code:
$_SERVER['REMOTE_ADDR']

Mike

__________________________________
Mike Lewis (Edinburgh, Scotland)

Visual FoxPro articles, tips, training, consultancy
 
Thank you

I think still I don't have sufficient information to implement and I should wait..

Thanks again.
 
I think still I don't have sufficient information to implement and I should wait

The point is that it's not something you do in your VFP application. It needs server-side programming, so you need skills in a suitable development tool - or help from someone who has those skills.

Mike


__________________________________
Mike Lewis (Edinburgh, Scotland)

Visual FoxPro articles, tips, training, consultancy
 
@newtofoxpro: Many countries have strict copyright infringement laws. If someone is using your application illegally, they are volating your copyright and you have legal action against them. In the US, the penalties are great as a $250,000 fine and/or prison time PER INCIDENT. Often times a cease and desist letter from an attorney will take care of the issue.

Craig Berntson
MCSD, Visual C# MVP,
 
Mike Lewis

Code:
#define TIMEOUT 30  && timeout 30 secondes
 
o = createobject("internetexplorer.application")
 o.Navigate("[URL unfurl="true"]http://www.atoutfox.org/ip.asp")[/URL]
 v_t = SECONDS()
 * Edit Correction suite suggestion de Thierry
 * DO WHILE o.busy() AND (seconds() -v_t) <= TIMEOUT
 DO WHILE o.ReadyState<>4 AND (seconds() -v_t) <= TIMEOUT
   DOEVENTS
 ENDDO
 IF o.ReadyState<>4
   v_ip = "0.0.0.0"
 else
   v_ip = o.document.nameprop()
 ENDIF
 RELEASE o
 
? "Ip address : ", v_ip




Mike Gagnon

If you want to get the best response to a question, please check out FAQ184-2483 first.
ReFox XI (www.mcrgsoftware.com)
 
Mike Gagnon,

<ou don't even need to do any query to find out the IP towards the extarnal world, that can be achieved from WMI, too.

The point is though, that a server side component should check the license and would need to know the IP of the incoming request.

It would not be a good idea to determine the IP from the vfp app and send it over to the server checking the license, as the request querying the correct license could be falsified with an IP adress known to work. So in the end you'd rather want to find out the caller's IP as seen by the license server, instead of letting the client send over his IP within the request to the license server.

Mike Lewis is totally correct, that $_SERVER['REMOTE_ADDR'] is doing that, if the license would be checked by a PHP skript running on the license server.

Bye, Olaf.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top