Jump to content

Lui2004

Member
  • Posts

    26
  • Joined

  • Last visited

About Lui2004

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Lui2004's Achievements

Junior Member

Junior Member (1/3)

0

Reputation

  1. How can i make this output Array ( [status] => invalid [Massage] => domain invalid [Remotecheck] => 1 ) License key is invalid in a xml output because because the other php cant Read array only xml output. Thanks for help
  2. Hi little question My Output is in array how can i make the Output in xml what i must Change in check sample code ? thanks
  3. ok will do this thank for your time mate
  4. its just ip without Domain no Problem mate youre the only one who trys to help me
  5. thats a screenshot in whmcs i got everytime Domain invalid thanks to all for help and pacienc
  6. hi in my installscript i have follow: echo "\n##############################\n"; echo "# #\n"; echo "# Test-Script #\n"; echo "##############################\n\n"; echo " TEST\n\n"; do { echo "[*] Enter the License for installation: "; fscanf( STDIN, '%s', $licenza); } while ( ! is_valid_licence( $licenza) ); for mysql: mysql_query( "UPDATE `licence` SET `licenza` = '$licenza" ); and function: function is_valid_licence( $licenza) my actual check_code.php <?php function is_valid_licence($licenza, $localkey='') { // ----------------------------------- // -- Configuration Values -- // ----------------------------------- // Enter the url to your WHMCS installation here $whmcsurl = 'http://ip from server/'; // Must match what is specified in the MD5 Hash Verification field // of the licensing product that will be used with this check. $licensing_secret_key = 'key from licensing addon'; // The number of days to wait between performing remote license checks $localkeydays = 15; // The number of days to allow failover for after local key expiry $allowcheckfaildays = 5; // ----------------------------------- // -- Do not edit below this line -- // ----------------------------------- $check_token = time() . md5(mt_rand(1000000000, 9999999999) . $licensekey); $checkdate = date("Ymd"); $domain = $_SERVER['SERVER_NAME']; $usersip = isset($_SERVER['SERVER_ADDR']) ? $_SERVER['SERVER_ADDR'] : $_SERVER['LOCAL_ADDR']; $dirpath = dirname(__FILE__); $verifyfilepath = 'modules/servers/licensing/verify.php'; $localkeyvalid = false; if ($localkey) { $localkey = str_replace("\n", '', $localkey); # Remove the line breaks $localdata = substr($localkey, 0, strlen($localkey) - 32); # Extract License Data $md5hash = substr($localkey, strlen($localkey) - 32); # Extract MD5 Hash if ($md5hash == md5($localdata . $licensing_secret_key)) { $localdata = strrev($localdata); # Reverse the string $md5hash = substr($localdata, 0, 32); # Extract MD5 Hash $localdata = substr($localdata, 32); # Extract License Data $localdata = base64_decode($localdata); $localkeyresults = unserialize($localdata); $originalcheckdate = $localkeyresults['checkdate']; if ($md5hash == md5($originalcheckdate . $licensing_secret_key)) { $localexpiry = date("Ymd", mktime(0, 0, 0, date("m"), date("d") - $localkeydays, date("Y"))); if ($originalcheckdate > $localexpiry) { $localkeyvalid = true; $results = $localkeyresults; $validdomains = explode(',', $results['validdomain']); if (!in_array($_SERVER['SERVER_NAME'], $validdomains)) { $localkeyvalid = false; $localkeyresults['status'] = "Invalid"; $results = array(); } $validips = explode(',', $results['validip']); if (!in_array($usersip, $validips)) { $localkeyvalid = false; $localkeyresults['status'] = "Invalid"; $results = array(); } $validdirs = explode(',', $results['validdirectory']); if (!in_array($dirpath, $validdirs)) { $localkeyvalid = false; $localkeyresults['status'] = "Invalid"; $results = array(); } } } } } if (!$localkeyvalid) { $responseCode = 0; $postfields = array( 'licensekey' => $licensekey, 'domain' => $domain, 'ip' => $usersip, 'dir' => $dirpath, ); if ($check_token) $postfields['check_token'] = $check_token; $query_string = ''; foreach ($postfields AS $k=>$v) { $query_string .= $k.'='.urlencode($v).'&'; } if (function_exists('curl_exec')) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $whmcsurl . $verifyfilepath); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $query_string); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($ch); $responseCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); } else { $responseCodePattern = '/^HTTP\/\d+\.\d+\s+(\d+)/'; $fp = @fsockopen($whmcsurl, 80, $errno, $errstr, 5); if ($fp) { $newlinefeed = "\r\n"; $header = "POST ".$whmcsurl . $verifyfilepath . " HTTP/1.0" . $newlinefeed; $header .= "Host: ".$whmcsurl . $newlinefeed; $header .= "Content-type: application/x-www-form-urlencoded" . $newlinefeed; $header .= "Content-length: ".@strlen($query_string) . $newlinefeed; $header .= "Connection: close" . $newlinefeed . $newlinefeed; $header .= $query_string; $data = $line = ''; @stream_set_timeout($fp, 20); @fputs($fp, $header); $status = @socket_get_status($fp); while (!@feof($fp)&&$status) { $line = @fgets($fp, 1024); $patternMatches = array(); if (!$responseCode && preg_match($responseCodePattern, trim($line), $patternMatches) ) { $responseCode = (empty($patternMatches[1])) ? 0 : $patternMatches[1]; } $data .= $line; $status = @socket_get_status($fp); } @fclose ($fp); } } if ($responseCode != 200) { $localexpiry = date("Ymd", mktime(0, 0, 0, date("m"), date("d") - ($localkeydays + $allowcheckfaildays), date("Y"))); if ($originalcheckdate > $localexpiry) { $results = $localkeyresults; } else { $results = array(); $results['status'] = "Invalid"; $results['description'] = "Remote Check Failed"; return $results; } } else { preg_match_all('/<(.*?)>([^<]+)<\/\\1>/i', $data, $matches); $results = array(); foreach ($matches[1] AS $k=>$v) { $results[$v] = $matches[2][$k]; } } if (!is_array($results)) { die("Invalid License Server Response"); } if ($results['md5hash']) { if ($results['md5hash'] != md5($licensing_secret_key . $check_token)) { $results['status'] = "Invalid"; $results['description'] = "MD5 Checksum Verification Failed"; return $results; } } if ($results['status'] == "Active") { $results['checkdate'] = $checkdate; $data_encoded = serialize($results); $data_encoded = base64_encode($data_encoded); $data_encoded = md5($checkdate . $licensing_secret_key) . $data_encoded; $data_encoded = strrev($data_encoded); $data_encoded = $data_encoded . md5($data_encoded . $licensing_secret_key); $data_encoded = wordwrap($data_encoded, 80, "\n", true); $results['localkey'] = $data_encoded; } $results['remotecheck'] = true; } unset($postfields,$data,$matches,$whmcsurl,$licensing_secret_key,$checkdate,$usersip,$localkeydays,$allowcheckfaildays,$md5hash); return $results; } // Get the license key and local key from storage // These are typically stored either in flat files or an SQL database $licenza = ""; $localkey = ''; // Validate the license key information $results = is_valid_licence($licenza, $localkey); // Raw output of results for debugging purpose echo '<textarea cols="100" rows="20">' . print_r($results, true) . '</textarea>'; // Interpret response switch ($results['status']) { case "Active": // get new local key and save it somewhere $localkeydata = $results['localkey']; break; case "Invalid": die("License key is Invalid"); break; case "Expired": die("License key is Expired"); break; case "Suspended": die("License key is Suspended"); break; default: die("Invalid Response"); break; } do i Need Change somthing else ? regards
  7. ok thanks in which file i must integrate the check_sample_code.php ? i will Report tommorow
  8. thanks but can you give me an example with my check_code.php? what i insert in my script ?
  9. 1.Server whmcs and script who i want try with the licensing addon i have try with 2 Server like whmcs+ licensing addon = 111.111.111.111 i get all like valid ip - Domain and Directory from the Server with whmcs and not from the other Server with the script and entered licens 2.Server and script = 222.222.222.222 but still the same licens not valid EDIT: which part from my check_code i must insert into my script for licensing ?
  10. yes if i enter the ip only i got to the "Portal Home"
  11. thats my check_code.php <?php /** * WHMCS Licensing Addon - Integration Code Sample * http://www.whmcs.com/addons/licensing-addon/ * * The following code is a fully working code sample demonstrating how to * perform license checks using the WHMCS Licensing Addon. It is PHP 4 and * 5 compatible. Requires the WHMCS Licensing Addon to be used. * * @package WHMCS * @author WHMCS Limited <development@whmcs.com> * @copyright Copyright (c) WHMCS Limited 2005-2014 * @license http://www.whmcs.com/license/ WHMCS Eula * @version $Id$ * @link http://www.whmcs.com/ */ /** * This is just example code, and is not intended to be invoked directly. * * To ensure this code isn't unintentionally invoked on the command line or * via the web interface, any attempt to actually execute this code will * be exited: */ /** * If you are using this file as a template for your own module, once * you've modified the code for your use, remove the exit above. */ // Replace "yourprefix" with your own unique prefix to avoid conflicts with // other instances of the licensing addon included within the same scope function check_license($licensekey,$localkey='') { // ----------------------------------- // -- Configuration Values -- // ----------------------------------- // Enter the url to your WHMCS installation here $whmcsurl = 'http://ip from server/'; // Must match what is specified in the MD5 Hash Verification field // of the licensing product that will be used with this check. $licensing_secret_key = 'secret key from licensing addon'; // The number of days to wait between performing remote license checks $localkeydays = 15; // The number of days to allow failover for after local key expiry $allowcheckfaildays = 5; // ----------------------------------- // -- Do not edit below this line -- // ----------------------------------- $check_token = time() . md5(mt_rand(1000000000, 9999999999) . $licensekey); $checkdate = date("Ymd"); $domain = $_SERVER['SERVER_NAME']; $usersip = isset($_SERVER['SERVER_ADDR']) ? $_SERVER['SERVER_ADDR'] : $_SERVER['LOCAL_ADDR']; $dirpath = dirname(__FILE__); $verifyfilepath = 'modules/servers/licensing/verify.php'; $localkeyvalid = false; if ($localkey) { $localkey = str_replace("\n", '', $localkey); # Remove the line breaks $localdata = substr($localkey, 0, strlen($localkey) - 32); # Extract License Data $md5hash = substr($localkey, strlen($localkey) - 32); # Extract MD5 Hash if ($md5hash == md5($localdata . $licensing_secret_key)) { $localdata = strrev($localdata); # Reverse the string $md5hash = substr($localdata, 0, 32); # Extract MD5 Hash $localdata = substr($localdata, 32); # Extract License Data $localdata = base64_decode($localdata); $localkeyresults = unserialize($localdata); $originalcheckdate = $localkeyresults['checkdate']; if ($md5hash == md5($originalcheckdate . $licensing_secret_key)) { $localexpiry = date("Ymd", mktime(0, 0, 0, date("m"), date("d") - $localkeydays, date("Y"))); if ($originalcheckdate > $localexpiry) { $localkeyvalid = true; $results = $localkeyresults; $validdomains = explode(',', $results['validdomain']); if (!in_array($_SERVER['SERVER_NAME'], $validdomains)) { $localkeyvalid = false; $localkeyresults['status'] = "Invalid"; $results = array(); } $validips = explode(',', $results['validip']); if (!in_array($usersip, $validips)) { $localkeyvalid = false; $localkeyresults['status'] = "Invalid"; $results = array(); } $validdirs = explode(',', $results['validdirectory']); if (!in_array($dirpath, $validdirs)) { $localkeyvalid = false; $localkeyresults['status'] = "Invalid"; $results = array(); } } } } } if (!$localkeyvalid) { $responseCode = 0; $postfields = array( 'licensekey' => $licensekey, 'domain' => $domain, 'ip' => $usersip, 'dir' => $dirpath, ); if ($check_token) $postfields['check_token'] = $check_token; $query_string = ''; foreach ($postfields AS $k=>$v) { $query_string .= $k.'='.urlencode($v).'&'; } if (function_exists('curl_exec')) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $whmcsurl . $verifyfilepath); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $query_string); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($ch); $responseCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); } else { $responseCodePattern = '/^HTTP\/\d+\.\d+\s+(\d+)/'; $fp = @fsockopen($whmcsurl, 80, $errno, $errstr, 5); if ($fp) { $newlinefeed = "\r\n"; $header = "POST ".$whmcsurl . $verifyfilepath . " HTTP/1.0" . $newlinefeed; $header .= "Host: ".$whmcsurl . $newlinefeed; $header .= "Content-type: application/x-www-form-urlencoded" . $newlinefeed; $header .= "Content-length: ".@strlen($query_string) . $newlinefeed; $header .= "Connection: close" . $newlinefeed . $newlinefeed; $header .= $query_string; $data = $line = ''; @stream_set_timeout($fp, 20); @fputs($fp, $header); $status = @socket_get_status($fp); while (!@feof($fp)&&$status) { $line = @fgets($fp, 1024); $patternMatches = array(); if (!$responseCode && preg_match($responseCodePattern, trim($line), $patternMatches) ) { $responseCode = (empty($patternMatches[1])) ? 0 : $patternMatches[1]; } $data .= $line; $status = @socket_get_status($fp); } @fclose ($fp); } } if ($responseCode != 200) { $localexpiry = date("Ymd", mktime(0, 0, 0, date("m"), date("d") - ($localkeydays + $allowcheckfaildays), date("Y"))); if ($originalcheckdate > $localexpiry) { $results = $localkeyresults; } else { $results = array(); $results['/'] = "Invalid"; $results['description'] = "Remote Check Failed"; return $results; } } else { preg_match_all('/<(.*?)>([^<]+)<\/\\1>/i', $data, $matches); $results = array(); foreach ($matches[1] AS $k=>$v) { $results[$v] = $matches[2][$k]; } } if (!is_array($results)) { die("Invalid License Server Response"); } if ($results['md5hash']) { if ($results['md5hash'] != md5($licensing_secret_key . $check_token)) { $results['status'] = "Invalid"; $results['description'] = "MD5 Checksum Verification Failed"; return $results; } } if ($results['status'] == "Active") { $results['checkdate'] = $checkdate; $data_encoded = serialize($results); $data_encoded = base64_encode($data_encoded); $data_encoded = md5($checkdate . $licensing_secret_key) . $data_encoded; $data_encoded = strrev($data_encoded); $data_encoded = $data_encoded . md5($data_encoded . $licensing_secret_key); $data_encoded = wordwrap($data_encoded, 80, "\n", true); $results['localkey'] = $data_encoded; } $results['remotecheck'] = true; } unset($postfields,$data,$matches,$whmcsurl,$licensing_secret_key,$checkdate,$usersip,$localkeydays,$allowcheckfaildays,$md5hash); return $results; } // Get the license key and local key from storage // These are typically stored either in flat files or an SQL database $licensekey = ""; $localkey = ""; $base = __DIR__; $handle = fopen($base."/license.txt", "r"); if ($handle) { $count = 0; while (($line = fgets($handle)) !== false) { // process the line read. if ($count == 0) { $licensekey = trim($line); } else if ($count == 1) { $localkey = trim($line); break; } $count++; } fclose($handle); } else { die("Could not read license file. Please contact support."); } echo $licensekey."<br/>"; echo $localkey."<br/>"; // Validate the license key information $results = check_license($licensekey, $localkey); // Raw output of results for debugging purpose echo '<textarea cols="100" rows="20">' . print_r($results, true) . '</textarea>'; // Interpret response switch ($results['status']) { case "Active": // get new local key and save it somewhere $localkeydata = str_replace(' ','',preg_replace('/\s+/', ' ', $results['localkey'])); $handle = fopen($base."/license.txt", "r"); if ($handle) { $count = 0; while (($line = fgets($handle)) !== false) { // process the line read. if ($count == 0) { $licence_key = trim($line); break; } $count++; } fclose($handle); if (isset($results['localkey'])) { $textfile = fopen($base . "/license.txt", "w") or die("Unable to open file!"); $contents = $licence_key . "\n" . $localkeydata . "\n"; fwrite($textfile, $contents); fclose($textfile); } } else { die("Could not read license file. Please contact support."); } break; case "Invalid": die("License key is Invalid"); break; case "Expired": die("License key is Expired"); break; case "Suspended": die("License key is Suspended"); break; default: die("Invalid Response"); break; }
  12. I Have installed whmcs in var/www/html/ So my $whmcsurl is : $whmcsurl = 'http://ipfromserver/'; He correct directory to check is : /home/test/test1/
  13. Hi I Got some News about my Problem with licensing addon: I execute the check_code.php and I Got follow on my browser : Array ( [status] => active [Registeredname] => test test => my Email adress [serviceid] => 6 [Productid] => 1 [Productname] => my Productname [regdate] => 2015-12-02 [nextduedate] => 0000-00-00 [billingcycle] => Free Account [validdomain] => my ip ,www [Validip] => my ip [Validdiractory] => /var/www/html/modules/servers/licensing [Md5Hash] => generated hash [checkdate] => 20151202 ) Why the code check the wrong directory? What i doing wrong ? Thanks
  14. Oh **************** i will delete this file I dont want to be a pirate
  15. Hi I Have in Internet a verify.php and I have try it and it Works only if i put the licens manually into this verify.php I dont now if its ok if i Post this verify.php because the original is coded and this one From Internet is open but with this is verify.php my licens work. But this code dont send me valid ip ,valid domain and valid directory Why i can write into this thread only with M mobile Phone on my PC to reply thread is grey Regards
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use & Guidelines and understand your posts will initially be pre-moderated