客户端(C):
/*
Copyright check frame
written by Radish.ghost Jan.2015
*/
#include
#include
#include
#ifdef C
#define bool int //C hesn't bool type
#endif
#pragma comment(lib, "urlmon.lib")
#ifndef USETIMES
#define USETIMES 50 //How many times can use
#endif
char*getinf();//Get the disk information
bool check1();//Connect server
int check2();//Check the file
int main()
{
check1();
check2();
if(check2())printf("You can use it!(%d times)\n",check2());
else {printf("You can't use it!\n");exit(0);}
/*
Your code here!
*/
return 0;
}
char*getinf()
{
char buf[MAX_PATH];
DWORD Ser;
DWORD Length;
char tmp[100];
int flag=0;
GetVolumeInformation("C:\\",NULL,MAX_PATH,&Ser,&Length,NULL,NULL,MAX_PATH);
//Ser为long 要转换成一个能用的字符串
while(Ser)//Convert long to char*
{
tmp[flag++]=(char)(Ser%10+'0');
Ser/=10;
}
tmp[flag]='\0';
return tmp;
}
bool check1()
{
char *ur=getinf();
char url[100]="http://localhost/bq.php?M=";
strcat(url,ur);
if(URLDownloadToFile(0,url,"c:\\a",0,NULL))return 1;
else return 0;
}
int check2()
{
int times;
freopen("c:\\a","r",stdin);
scanf("%d",×);
if(times>(-1*USETIMES+50))return times;
else return 0;
}
服务器端(php):
/*在线版权验证*/
Header("Content-type: text/plain");
$M=$_GET['M'];//获取硬盘序列号
if(!file_exists($M))
{
file_put_contents($M,"50");
echo '50';
}
else
{
$times=file_get_contents($M);
unlink($M);
file_put_contents($M,$times-1);
echo $times;
}
?>