Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace WGS\HOSTXTEMPLATE;
- if (!defined("WHMCS")) {
- exit("This file cannot be accessed directly");
- }
- class HOSTX
- {
- public function __construct()
- {
- }
- public function wgs_hostx_get_license($license)
- {
- function wgs_hostx_checkLicense($licensekey, $localkey = "")
- {
- $whmcsurl = "https://whmcs.atoznull.com/";
- $licensing_secret_key = "HOSTX-WHMCS-SOM-Rakesh";
- $check_token = time() . md5(mt_rand(1000000000, 10000000000.0) . $licensekey);
- $checkdate = date("Ymd");
- $usersip = isset($_SERVER["SERVER_ADDR"]) ? $_SERVER["SERVER_ADDR"] : $_SERVER["LOCAL_ADDR"];
- $localkeydays = 10;
- $allowcheckfaildays = 5;
- $localkeyvalid = false;
- $lkey = \WHMCS\Database\Capsule::table("tblconfiguration")->where("setting", "wgs_hostx_localkey")->get();
- if ($lkey) {
- $localkey = $lkey[0]->value;
- }
- if ($localkey) {
- $localkey = str_replace("\n", "", $localkey);
- $localdata = substr($localkey, 0, strlen($localkey) - 32);
- $md5hash = substr($localkey, strlen($localkey) - 32);
- if ($md5hash == md5($localdata . $licensing_secret_key)) {
- $localdata = strrev($localdata);
- $md5hash = substr($localdata, 0, 32);
- $localdata = substr($localdata, 32);
- $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 ($localexpiry < $originalcheckdate) {
- $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();
- }
- if ($results["validdirectory"] != dirname(__FILE__)) {
- $localkeyvalid = false;
- $localkeyresults["status"] = "Invalid";
- $results = array();
- }
- }
- }
- }
- }
- if (!$localkeyvalid) {
- $postfields["licensekey"] = $licensekey;
- $postfields["domain"] = $_SERVER["SERVER_NAME"];
- $postfields["ip"] = $usersip;
- $postfields["dir"] = dirname(__FILE__);
- if ($check_token) {
- $postfields["check_token"] = $check_token;
- }
- if (function_exists("curl_exec")) {
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $whmcsurl . "modules/servers/licensing/verify.php");
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
- curl_setopt($ch, CURLOPT_TIMEOUT, 30);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- $data = curl_exec($ch);
- curl_close($ch);
- } else {
- $fp = fsockopen($whmcsurl, 80, $errno, $errstr, 5);
- if ($fp) {
- $querystring = "";
- foreach ($postfields as $k => $v) {
- $querystring .= (string) $k . "=" . urlencode($v) . "&";
- }
- $header = "POST " . $whmcsurl . "modules/servers/licensing/verify.php HTTP/1.0\r\n";
- $header .= "Host: " . $whmcsurl . "\r\n";
- $header .= "Content-type: application/x-www-form-urlencoded\r\n";
- $header .= "Content-length: " . @strlen($querystring) . "\r\n";
- $header .= "Connection: close\r\n\r\n";
- $header .= $querystring;
- $data = "";
- @stream_set_timeout($fp, 20);
- @fputs($fp, $header);
- $status = @socket_get_status($fp);
- while (!feof($fp) && $status) {
- $data .= @fgets($fp, 1024);
- $status = @socket_get_status($fp);
- }
- @fclose($fp);
- }
- }
- if (!$data) {
- $localexpiry = date("Ymd", mktime(0, 0, 0, date("m"), date("d") - ($localkeydays + $allowcheckfaildays), date("Y")));
- if ($localexpiry < $originalcheckdate) {
- $results = $localkeyresults;
- } else {
- $results["status"] = "Invalid";
- $results["description"] = "Remote Check Failed";
- return $results;
- }
- }
- preg_match_all("/<(.*?)>([^<]+)<\\/\\1>/i", $data, $matches);
- $results = array();
- foreach ($matches[1] as $k => $v) {
- $results[$v] = $matches[2][$k];
- }
- if ($results["md5hash"] && $results["md5hash"] != md5($licensing_secret_key . $check_token)) {
- $results["status"] = "Invalid";
- $results["description"] = "MD5 Checksum Verification Failed";
- return $results;
- .............................................................................
- .......................................
- .............
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement