欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

[點晴永久免費OA]PHP更新本地公網IP到阿里云域名解析,實現DDNS

admin
2019年9月5日 23:27 本文熱度 3168
<?php
#需要配置的項
define(''ACCESSKEYID'',''AAAAAAAAAAAAAAAA'');                  #阿里云用戶密鑰ID 獲取方法 https://help.aliyun.com/knowledge_detail/38738.html
define(''ACCESSKEYSECRET'',''AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'');#阿里云用戶密鑰
define(''RR'',''myhome'');                                     #二級域名的記錄名 如果是一級 請用@
define(''DOMAIN'',''myhome.baidu.com'');                       #完整域名  
define(''RECORDID'',''11111111111111111'');                    #解析記錄ID
/*關鍵如何獲取解析記錄ID ,需要在下面這個地址中
https://api.aliyun.com/?spm=a2c4g.11186623.2.26.79ae2846d9RBBa#/?product=Alidns&api=AddDomainRecord&params={}&tab=DEMO&lang=JAVA
先設置一個記錄(二級域名) 然后返回結果中獲取這個ID 添加記錄所需的參數文檔在下面這里查看
https://help.aliyun.com/document_detail/29772.html?spm=a2c4g.11186623.4.3.392b5eb4SAeph9

*/

define(''GET_IP_URL'',''myip.fireflysoft.net'');
define(''IP_FILE'',__DIR__. DIRECTORY_SEPARATOR .''ip.txt'');

function 獲取HTTP($url)
{
    $curl_samples = curl_init();
    $options = [CURLOPT_URL => $url,CURLOPT_RETURNTRANSFER => 1,CURLOPT_FOLLOWLOCATION => 1,CURLOPT_SSL_VERIFYPEER => 0];
    curl_setopt_array($curl_samples, $options);                
    curl_setopt($curl_samples, CURLOPT_CUSTOMREQUEST, ''GET'');  
    $result = curl_exec($curl_samples);                            
    $info = curl_getinfo($curl_samples); 
    $curl_err = curl_errno($curl_samples);
    curl_close($curl_samples);                                 
    if( 0 != $curl_err )
    {
        echo "getip error:".date(''Y-m-d H:i:s'',time());
        var_dump($info);
        echo PHP_EOL;
        var_dump($result);
        echo PHP_EOL;
        echo $curl_err;
        echo PHP_EOL;
        exit;
    }
    return $result;
}
 
function 編碼字符($string)
{
    $result = urlencode($string);
    $result = str_replace([''+'', ''*''], [''%20'', ''%2A''], $result);
    $result = preg_replace(''/%7E/'', ''~'', $result);
    return $result;
}

function 排序參數計算簽名($parameters,$method="GET")
{
    ksort($parameters);
    $canonicalizedQuery = '''';
    foreach ($parameters as $key => $value) 
    {
        $canonicalizedQuery .= ''&'' . 編碼字符($key) . ''='' . 編碼字符($value);
    }
    
    $stringToBeSigned = $method. ''&%2F&''. 編碼字符(substr($canonicalizedQuery, 1));
    return base64_encode(hash_hmac(''sha1'', $stringToBeSigned, ACCESSKEYSECRET . ''&'', true));
}

function 獲取當前的解析記錄值()
{
    #請求dns的API重新做解析
    $api_url = ''https://alidns.aliyuncs.com/?'';
    $data = [];
    #公共參數
    $data[''Format'']          = ''json'';
    $data[''Version'']         = ''2015-01-09'';
    $data[''SignatureMethod''] = ''HMAC-SHA1'';
    $data[''SignatureNonce'']  = uniqid();
    $data[''SignatureVersion'']= ''1.0'';
    $data[''AccessKeyId'']     = ACCESSKEYID; 
    $data[''Timestamp'']       = gmdate("Y-m-d\TH:i:s\Z");
    #專用參數
    $data[''Action'']     = ''DescribeDomainRecordInfo'';
    $data[''RecordId'']   = RECORDID; #解析記錄的ID,此參數在添加解析時會返回,在獲取域名解析列表時會返回
    #簽名
    $data[''Signature'']  = 排序參數計算簽名($data);
    #請求接口
    $json = 獲取HTTP($api_url . http_build_query($data));
    $result = json_decode($json,true);
    return $result[''Value''];
    
}

function 主函數()
{   
    #獲取現在網絡的IP
    $ip = 獲取HTTP(GET_IP_URL);
    #獲取現在域名的解析結果 也就是舊的IP
    $舊IP = 獲取當前的解析記錄值();
    #對比新舊IP是否一樣
    if(!isset($舊IP) || $舊IP !== $ip)
    {
        #請求dns的API重新做解析
        $api_url = ''https://alidns.aliyuncs.com/?'';
        $data = [];
        #公共參數
        $data[''Format'']          = ''json'';
        $data[''Version'']         = ''2015-01-09'';
        $data[''SignatureMethod''] = ''HMAC-SHA1'';
        $data[''SignatureNonce'']  = uniqid();
        $data[''SignatureVersion'']= ''1.0'';
        $data[''AccessKeyId'']     = ACCESSKEYID; 
        $data[''Timestamp'']       = gmdate("Y-m-d\TH:i:s\Z");
        #專用參數
        $data[''Action'']     = ''UpdateDomainRecord'';
        $data[''RecordId'']   = RECORDID; #解析記錄的ID,此參數在添加解析時會返回,在獲取域名解析列表時會返回
        $data[''RR'']         = RR; #主機記錄
        $data[''Type'']       = ''A'';
        $data[''Value'']      = $ip;
        $data[''TTL'']        = 600;
        #$data[''Priority'']   = 10; #MX記錄的優先級,取值范圍[1,10],記錄類型為MX記錄時,此參數必須
        $data[''Line'']       = ''default'';
        #簽名
        $data[''Signature'']  = 排序參數計算簽名($data);
        #請求接口
        $json = 獲取HTTP($api_url . http_build_query($data));
        $result = json_decode($json);
        
        #完成以后
        if(isset($result->RecordId)){
            file_put_contents(IP_FILE,$ip);
        }else{
            echo ''error'';
            var_dump($result);
        }
    }else
    {
        echo ''IP沒有發生變化,不需要修改解析記錄'';
    }
}
主函數();

該文章在 2019/9/5 23:27:09 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved