domain = $_CFG['cf_domain']; $this->zoneid = $_CFG['cf_site_id']; $this->apikey = $_CFG['cf_api_key']; $this->apiemail = $_CFG['cf_email']; $this->apiip = $_CFG['cf_ip']; $this->error_msg = ''; } function add_domain($dm){ $real_param =[ 'type' => 'A', 'name' => $dm, 'content' => $this->apiip, 'ttl' => 1, 'priority' => 0, 'proxied' => true, ]; $header[] = 'X-Auth-Key: '.$this->apikey; $header[] = 'X-Auth-Email: '.$this->apiemail ; $header[] = 'Content-Type: application/json ' ; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://api.cloudflare.com/client/v4/zones/'.$this->zoneid.'/dns_records'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER,$header); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($real_param)); $t_result = curl_exec($ch); curl_close($ch); $result=json_decode($t_result,true); if($result['success']){ return $result['result']['id']; } return false; } function del_domain($iden){ $header[] = 'X-Auth-Key: '.$this->apikey; $header[] = 'X-Auth-Email: '.$this->apiemail ; $header[] = 'Content-Type: application/json ' ; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://api.cloudflare.com/client/v4/zones/'.$this->zoneid.'/dns_records/'.$iden); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); curl_setopt($ch, CURLOPT_HTTPHEADER,$header); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); $t_result = curl_exec($ch); curl_close($ch); $result=json_decode($t_result,true); if($result['success']){ return true; } return false; } function update_domain($iden ,$dm){ $real_param =[ 'type' => 'A', 'name' => $dm, 'content' => $this->apiip, 'ttl' => 1, 'proxied' => true, ]; $header[] = 'X-Auth-Key: '.$this->apikey; $header[] = 'X-Auth-Email: '.$this->apiemail ; $header[] = 'Content-Type: application/json ' ; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://api.cloudflare.com/client/v4/zones/'.$this->zoneid.'/dns_records/'.$iden); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); curl_setopt($ch, CURLOPT_HTTPHEADER,$header); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($real_param)); $t_result = curl_exec($ch); curl_close($ch); $result=json_decode($t_result,true); if($result['success']){ return $result['result']['id']; } return false; } function get_record($name){ $header[] = 'X-Auth-Key: '.$this->apikey; $header[] = 'X-Auth-Email: '.$this->apiemail ; $header[] = 'Content-Type: application/json ' ; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://api.cloudflare.com/client/v4/zones/'.$this->zoneid.'/dns_records'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER,$header); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); $t_result = curl_exec($ch); curl_close($ch); $result=json_decode($t_result,true); print_r($result); foreach($result['result'] as $key=>$val){ if($val['name']==$name.'.'.$this->domain){ $id=$val['id']; break; } } if(strlen($id)>0){ return $id; } return false; } } ?>