自己写的新网域名API,仅供参考

<?php
class Xndmapi {
	private $config;
	
	public function __construct() {
		$ci = get_instance();
		$ci->config->load('xndmapi');
		$this->config = $ci->config->item('xndmapi');
	}
	
	public function check($name, $suffixs) {
		if (!is_array($suffixs)) {
			$suffixs = explode(',', $suffixs);
		}
		
		$uri = $this->config['uri']."?method=check&charset={$this->config['charset']}";
		$query = "enc={$this->config['enc']}&client={$this->config['client']}&name=".rawurlencode($name);
		foreach ($suffixs as $suffix) {
			$query .= '&suffix='.rawurlencode(trim($suffix));
		}
		
		if ($data = $this->curl($uri, $query)) {
			parse_str($data, $params);
			
			$n = intval($params['num']);
			if ($n <= 0) {
				return false;
			}
			
			$list = array();
			for($i = 1; $i <= $n; $i++) {
				$_name = $params["name{$i}"];
				
				$list[] = array(
					'name'=>$_name,
					'suffix' => substr($_name, strpos($_name, '.')),
					'status'=>($params["chk{$i}"] == '100' ? true : false)
				);
			}
			
			return $list;
		}
		
		return false;
	}
	
	public function register($params) {
		$uri = $this->config['uri']."?method=Register&charset={$this->config['charset']}";
		
		
		$client = $this->config['client'];
		$password = $this->config['password'];
		$enc = $this->config['enc'];
		
		$checksum = strtoupper(md5("Register{$client}{$password}{$params['dn']}{$params['aemail']}{$params['uname2']}"));
		
		$query = array(
			'enc' => $enc,
			'client' => $client,
			'checksum' => $checksum,
			'url' => null,
		);
		$query = array_merge($query, $params);

		if ($data = $this->curl($uri, http_build_query($query))) {
			parse_str($data, $result);
			if ($result['ret'] == '100') {
				return true;
			}
		}
		
		return false;
	}
	
	public function renew($params) {
		$uri = $this->config['uri']."?method=DomainRenew&charset={$this->config['charset']}";
		
		$client = $this->config['client'];
		$password = $this->config['password'];
		$enc = $this->config['enc'];
		
		$checksum = strtoupper(md5("DomainRenew{$client}{$password}{$params['dn']}{$enc}{$params['begindate']}"));
		
		$query = array(
			'client' => $client,
			'enc' => $enc,
			'checksum' => $checksum,
		);
		$query = array_merge($query, $params);
		
		if ($data = $this->curl($uri, http_build_query($query))) {
			parse_str($data, $result);
			if ($result['ret'] == '100') {
				return true;
			}
		}
		
		return false;
	}
	
	private function curl($uri, $query) {
		$this->_log($uri." + ".$query);
		
		$curl = curl_init();
		
		curl_setopt($curl, CURLOPT_URL, $uri);
		curl_setopt($curl, CURLOPT_POST, true);
		curl_setopt($curl, CURLOPT_POSTFIELDS, $query);
		curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
		curl_setopt($curl, CURLOPT_TIMEOUT, 30);
		
		$data = curl_exec($curl);
		
		curl_close($curl);
		
		if ($data) {
			$this->_log($data); return trim($data);
		}
		
		return false;
	}
	
	private function _log($str) {
		$dir = APPPATH.'logs/api';
		if (!is_dir($dir)) {
			mkdir($dir, 0750);
		}
		
		$path = $dir.'/xinnet-'.date('Y-m-d').'.php';
		if (!file_exists($path)) {
			file_put_contents($path, '<'.'?php  if ( ! defined(\'BASEPATH\')) exit(\'No direct script access allowed\'); ?'.'>'."\r\n");
		}
		
		if ($fp = fopen($path, 'a')) {
			fwrite($fp, date('Y-m-d H:i:s').'    '.$str."\r\n");
			fclose($fp);
		}
		
		log_message('INFO', $str);
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值