<?php
define('AccessKeyId', '此处填写阿里云提供的ID');
define('AccessKeySecret', '此处填写阿里云提供的密匙');
date_default_timezone_set('UTC');
/********密码验证***********/
$password='123456'; //这个密码是登陆验证用的.把文件上传到服务器后通过自己的url/ip.php?pw=123456....注意一定需要修改.
if($password!=$_GET['pw']) exit('验证密码错误'); //安全检测,密码不符则退出
//对比IP决定是否继续
$ip = $_SERVER['REMOTE_ADDR'];
$file_path = "ip.txt";
if(file_exists($file_path))
{
$str = file_get_contents($file_path);//将整个文件内容读入到一个字符串中
$str = str_replace("\r\n","<br />",$str);
}
if($str == $ip)
{
echo $_SERVER['REMOTE_ADDR'];
exit();
}
else
{
//写入TXT
$file = fopen("ip.txt", "w");
if( $ip != null)
{
fwrite( $file, $ip);
}
fclose($file);
/**
* 获取请求签名
*/
function getSign($add){
$nonce = time() . rand(11111, 99999);
$time = date('Y-m-d') . 'T' . date('H:i:s') . 'Z';
$data = array(
'AccessKeyId' => AccessKeyId,
'Format' => 'json',
'SignatureMethod' => 'HMAC-SHA1',
'SignatureNonce' => $nonce,
'SignatureVersion' => '1.0',
'Timestamp' => $time,
'Version' => '2015-01-09'
);
$data = array_merge($data, $add);
ksort($data);
$format = http_build_query($data);
$signUrl = 'GET&%2F&' . urlencode($format);
$sign = urlencode(base64_encode(hash_hmac('sha1', $signUrl, AccessKeySecret . '&', true)));
return array('url' => $format, 'sign' => $sign);
}
/**
* 获取域名解析记录
*/
function getDNS($domain) {
$sign = getSign(['Action' => 'DescribeSubDomainRecords', 'SubDomain' => $domain]);
$url = 'https://alidns.aliyuncs.com/?' . $sign['url'] . '&Signature=' . $sign['sign'];
$dns = json_decode(httpRequest($url));
if (isset($dns->DomainRecords->Record[0])) {
return $dns->DomainRecords->Record[0];
}
return '';
}
/**
* 更新域名解析
*/
function updateDNS($id, $name, $ip) {
$data = array(
'Action' => 'UpdateDomainRecord',
'RecordId' => $id,
'RR' => $name,
'Type' => 'A',
'Value' => $ip,
);
$sign = getSign($data);
$url = 'https://alidns.aliyuncs.com/?' . $sign['url'] . '&Signature=' . $sign['sign'];
return httpRequest($url);
}
/**
* 发起 HTTP 请求
*/
function httpRequest($url) {
$header = array(
'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0',
'Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
'Accept-Encoding: gzip, deflate',
'Connection: keep-alive',
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_ENCODING, 'gzip');
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
$data = curl_exec($curl);
$error = curl_error($curl);
curl_close($curl);
if ($error) {
return $error;
} else {
return $data;
}
}
function main() {
$dns = getDNS('www.xxx.com');//输入自己要解析的域名
$ip = $_SERVER['REMOTE_ADDR'];
if (isset($dns->RecordId)) {
echo updateDNS($dns->RecordId, 'www', $ip);//输入自己的域名前辍
}
}
main();
}
?>
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
在阿里云买域名的朋友可能有了解到动态解析API服务的 实际上这种功能可以替代类似花生壳服务,虽说很多在家做服务器的朋友不可能开通80端口,用别的端口做别的很多服务还是用处相当大的。 只是因为动态IP让人头疼,不能每次都要查询自家外网IP后再去阿里云做相应解析,这样肯定是麻烦的不要不要的! 电脑屋通过PHP写的这个小工具,可以实现动态解析,也就是说自已家里的动态IP变成一个固定的域名地址(可以是二级三级域名) 这样,类似于远程桌面和各种IP服务都可以用域名实现,而且不需要软件的支持 要求: 第一,你要有一个外网的服务器,做网站的朋友相信都有,不占用太多资 源,只要把下载的文件上传解压,后,修改相应参数即可! 第二,在本地服务器打开自己的域名加目录,一直保持打开状态即可实现解析,自己的路由重启也可在最短的时间重新解析! 而且电脑屋小编还设置了一个小界面,可以搭建好服务器后提供给别人使用此服务! 里面可以设置到期时间等等! 用的到的朋友可以下载研究! 亲测可用,放心下载! 当然,如果自己没有外网服务器,也不喜欢研究,但还是需要这种动态解析服务也可以在本地联系QQ里加我,直接让我开通这种服务也
资源推荐
资源详情
资源评论
收起资源包目录
阿里云动态域名解析PHP工具.zip (3个子文件)
ddsn
js
vue.min.js 77KB
index.php 3KB
ip.php 4KB
共 3 条
- 1
资源评论
电脑屋
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于C++和C混合模式的操作系统开发项目.zip
- (源码)基于Arduino的全球天气监控系统.zip
- OpenCVForUnity2.6.0.unitypackage
- (源码)基于SimPy和贝叶斯优化的流程仿真系统.zip
- (源码)基于Java Web的个人信息管理系统.zip
- (源码)基于C++和OTL4的PostgreSQL数据库连接系统.zip
- (源码)基于ESP32和AWS IoT Core的室内温湿度监测系统.zip
- (源码)基于Arduino的I2C协议交通灯模拟系统.zip
- coco.names 文件
- (源码)基于Spring Boot和Vue的房屋租赁管理系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功