> 백엔드 개발 > PHP 튜토리얼 > php+c实现网络版权验证

php+c实现网络版权验证

WBOY
풀어 주다: 2016-06-23 13:40:35
원래의
1090명이 탐색했습니다.

客户端(C):

/*Copyright check frame written by Radish.ghost Jan.2015*/#include<stdio.h>#include<windows.h>#include <urlmon.h>#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#endifchar*getinf();//Get the disk informationbool check1();//Connect serverint check2();//Check the fileint main(){check1();check2();if(check2())printf("You can use it!(%d times)\n",check2());else {printf("You can't use it!\n");exit(0);}/*<img src="http://img.blog.csdn.net/20150130120314717?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXE3NTQ0MDY2MTM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">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;}</urlmon.h></windows.h></stdio.h>
로그인 후 복사

服务器端(php):

<?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;}?>
로그인 후 복사


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿