精华内容
下载资源
问答
  • 动态IP地址绑定域名设置教程,动态域名DDNS 设置方法
  • 动态域名ddns脚本shell

    2020-11-09 21:12:32
    浏览器输入可更新ip,类似: <code>...domain=YourDomain.tld&password=e747d77054a844409c486973cb&ip=127.0.0.1</code></pre> 请问:怎样通过shell命令运行,以及脚本编写?</p>
  • 在openwrt上配置自定义的ddns,定时上报路由器的动态IP信息1将IP信息定时发送到http://xxx.xxx.net/updateip.php在服务器对用户名和密码进行验证,验证成功后将数据库中的IP信息替换成上报的IP信息:$name=$_GET['...

    利用php重定向功能实现DDNS。

    在openwrt上配置自定义的ddns,定时上报路由器的动态IP信息

    1

    将IP信息定时发送到http://xxx.xxx.net/updateip.php

    在服务器对用户名和密码进行验证,验证成功后将数据库中的IP信息替换成上报的IP信息:

    $name=$_GET['name'];

    $pass=$_GET['pass'];

    $myip=$_GET['myip'];

    if($myip)

    {

    $conn=mysql_connect("localhost", "root", "xxxx");

    mysql_query("set names 'utf8' ");

    mysql_query("set character_set_client=utf8");

    mysql_query("set character_set_results=utf8");

    $result=mysql_db_query("mydns", "SELECT * FROM `info` where name='".$name."'", $conn);

    // 获取查询结果

    $row=mysql_fetch_row($result);

    if(!$row)

    {

    // echo 'user not found';

    return;

    }

    if($row[1]==$pass)

    {

    $update="UPDATE `info` SET `ip` = '".$myip."' WHERE name = '".$name."'";

    $result=mysql_db_query("mydns",$update, $conn);

    //echo 'ok|'. $update;

    }

    else

    {

    //echo 'pass err';

    }

    }

    ?>

    先用mysql建立数据库mydns,数据表info,三个字段name、pass、ip,都为文本型,新增一条记录:test,xxx,1.1.1.1

    在访问http://xxx.xxx.net时,利用PHP读取数据库中的IP信息,重定向到新的IP地址:

    $val=$_SERVER['HTTP_HOST'];

    if($val=="xxx.xxx.net")

    {

    $conn=mysql_connect("localhost", "root", "xxx");

    mysql_query("set names 'utf8' ");

    mysql_query("set character_set_client=utf8");

    mysql_query("set character_set_results=utf8");

    $result=mysql_db_query("mydns", "SELECT * FROM `info` where name='test'", $conn);

    // 获取查询结果

    $row=mysql_fetch_row($result);

    if($row)

    {

    header("Location: http://".$row[2]."\n");

    }

    }

    ?>

    展开全文
  • 集成的webui接口,辅种,转移,下载,定时访问URL,动态域名ddns等常用功能,提供完善的插件机制。 IYUU自动辅种工具,目前能对国内大部分的PT站点自动辅种,支持下载器能够,支持多盘位,支持多下载目录,支持远程...
  • 在linux下使用dnspod实现动态域名DDNS

    千次阅读 2016-06-07 23:21:30
    以前的文章的,不知道还能不能用 将dnspodsh复制到/usr/bin下设置成可执行属性,并在/etc/rc.local中加入下面一行即可实现你自己的免费DDNS: ...设置域名的地方有2个数组,如果只有一个域名

    以前的文章的,不知道还能不能用


    将dnspodsh复制到/usr/bin下设置成可执行属性,并在/etc/rc.local中加入下面一行即可实现你自己的免费DDNS:

    /usr/bin/dnspodsh dnspod_name dnspod_passwaord &>/dev/null


    保存时注意使用LINUX格式和UTF8编码

    设置域名的地方有2个数组,如果只有一个域名的话可以这么设置:

    domainList[0]='baidu.com \* @'

    domainList[1]='baidu.com www'


    文件名:dnspodsh


    内容:


    #!/bin/bash

     

    ##############################

    # dnspodsh v0.3

    # 基于dnspod api构架的bash ddns客户端

    # 作者:zrong(zengrong.net)

    # 详细介绍:http://zengrong.net/post/1524.htm

    # 创建日期:2012-02-13

    # 更新日期:2012-03-11

    ##############################

     

    login_email=${1:?'必须提供登录名'}

    login_password=${2:?'必须提供密码'}

    format="json"

    lang="en"

    userAgent="dnspodsh/0.3(zrongzrong@gmail.com)"

    commonPost="login_email=$login_email&login_password=$login_password&format=$format&lang=$lang"

     

    apiUrl='https://dnsapi.cn/'

    ipUrl='http://members.3322.org/dyndns/getip'

     

    # 要处理的域名数组,每个元素代表一个域名的一组记录

    # 在数组的一个元素中,以空格分隔域名和子域名

    # 第一个空格前为主域名,后面用空格分离多个子域名

    # 如果使用泛域名,必须用\*转义

    domainList[0]='domain1.com \* @ www'

    domainList[1]='domain2.com subdomain subdomain2'

     

    # 多长时间比较一次ip地址

    delay=300

     

    # logfile

    logDir='/var/log'

    logFile=$logDir'/dnspodsh.log'

    traceFile=$logDir'/dnspodshtrace.log'

     

    # 检测ip地址是否符合要求

    checkip()

    {

    # ipv4地址

    if [[ "$1" =~ ^([0-9]{1,3}\.){3}[0-9]{1,3}$ ]];then

    return 0

    # ipv6地址

    elif [[ "$1" =~ ^([\da-fA-F]{1,4}:){7}[\da-fA-F]{1,4}$|^:((:[\da-fA-F]{1,4}){1,6}|:)$|^[\da-fA-F]{1,4}:((:


    [\da-fA-F]{1,4}){1,5}|:)$|^([\da-fA-F]{1,4}:){2}((:[\da-fA-F]{1,4}){1,4}|:)$|^([\da-fA-F]{1,4}:){3}((:[\da-fA-F]


    {1,4}){1,3}|:)$|^([\da-fA-F]{1,4}:){4}((:[\da-fA-F]{1,4}){1,2}|:)$|^([\da-fA-F]{1,4}:){5}:([\da-fA-F]{1,4})?$|^


    ([\da-fA-F]{1,4}:){6}:$ ]];then

    return 0

    fi

    return 1

    }

     

    getUrl()

    {

    #curl -s -A $userAgent -d $commonPost$2 --trace $traceFile $apiUrl$1

    curl -s -A $userAgent -d $commonPost$2 $apiUrl$1

    }

     

    getVersion()

    {

    getUrl "Info.Version"

    }

     

    getUserDetail()

    {

    getUrl "User.Detail"

    }

     

    writeLog()

    {

    if [ -w $logDir ];then

    local pre=`date`

    for arg in $@;do

    pre=$pre'\t'$arg

    done

    echo -e $pre>>$logFile

    fi

    echo -e $1

    }

     

    getDomainList()

    {

    getUrl "Domain.List" "&type=all&offset=0&length=10"

    }

     

    # 根据域名id获取记录列表

    # $1 域名id

    getRecordList()

    {

    getUrl "Record.List" "&domain_id=$1&offset=0&length=20"

    }

     

    # 设置记录

    setRecord()

    {

    writeLog "set domain $3.$8 to new ip:$7"

    local subDomain=$3

    # 由于*会被扩展,在最后一步将转义的\*替换成*

    if [ "$subDomain" = '\*' ];then

    subDomain='*'

    fi

    local request="&domain_id=$1&record_id=$2&sub_domain=$subDomain&record_type=$4&record_line=$5&ttl=


    $6&value=$7"

    #echo $request

    local saveResult=$(getUrl 'Record.Modify' "$request")

    # 检测返回是否正常,但即使不正常也不退出程序

    if checkStatusCode "$saveResult" 0;then

    writeLog "set record $3.$8 success."

    fi

    #getUrl 'Record.Modify' "&domain_id=$domainid&record_id=$recordid&sub_domain=$recordName&record_type=


    $recordtype&record_line=$recordline&ttl=$recordttl&value=$newip"

    }

     

    # 设置一批记录

    setRecords()

    {

    numRecord=${#changedRecords[@]}

    for (( i=0; i < $numRecord; i++ ));do

    setRecord ${changedRecords[$i]}

    done

    # 删除待处理的变量

    unset changeRecords

    }

     

    # 通过key得到找到一个JSON对象字符串中的值

    getDataByKey()

    {

    local s='s/{[^}]*"'$2'":["]*\('$(getRegexp $2)'\)["]*[^}]*}/\1/'

    #echo '拼合成的regexp:'$s

    echo $1|sed $s

    }

     

    # 根据key返回要获取的正则表达式

    getRegexp()

    {

    case $1 in

    'value') echo '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}';;

    'type') echo '[A-Z]\+';;

    'name') echo '[-_.A-Za-z*]\+';;

    'ttl'|'id') echo '[0-9]\+';;

    'line') echo '[^"]\+';;

    esac

    }

     

    # 通过一个JSON key名称,获取一个{}包围的JSON对象字符串

    # $1 要搜索的key名称

    # $2 要搜索的对应值

    getJSONObjByKey()

    {

    grep -o '{[^}{]*"'$1'":"'$2'"[^}]*}'

    }

     

    # 获取A记录类型的域名信息

    # 对于其它记录,同样的名称可以对应多条记录,因此使用getJSONObjByKey可能获取不到需要的数据

    getJSONObjByARecord()

    {

    grep -o '{[^}{]*"name":"'$1'"[^}]*"type":"A"[^}]*}'

    }

     

    # 获取返回代码是否正确

    # $1 要检测的字符串,该字符串包含{status:{code:1}}形式,代表DNSPodAPI返回正确

    # $2 是否要停止程序,因为dnspod在代码错误过多的情况下会封禁账号

    checkStatusCode()

    {

    if [[ "$1" =~ \{\"status\":\{[^}{]*\"code\":\"1\"[^}]*\} ]];then

    return 0

    fi

    writeLog "DNSPOD return error:$1"

    # 根据参数需求退出程序

    if [ -n "$2" ] && [ "$2" -eq 1 ];then

    writeLog 'exit dnspodsh'

    exit 1

    fi

    }

     

    # 获取与当前ip不同的,要更新的记录的数组

    getChangedRecords()

    {

    # 从DNSPod获取最新的域名列表

    local domainListInfo=$(getDomainList)

    if [ -z "$domainListInfo" ];then

    writeLog 'DNSPOD tell me domain list is null,waiting...'

    return 1

    fi

    checkStatusCode "$domainListInfo" 1

     

    # 主域名的id

    local domainid

    local domainName

    # 主域名的JSON信息

    local domainInfo

    # 主域名的所有记录列表

    local recordList

    # 一条记录的JSON信息

    local recordInfo

    # 记录的id

    local recordid

    local recordName

    # 记录的TTL

    local recordTtl

    # 记录的类型

    local recordType

    # 记录的线路

    local recordLine

    local j

     

    # 用于记录被改变的记录

    unset changedRecords

     

    local numDomain=${#domainList[@]}

    local domainGroup

     

    for ((i=0;i<$numDomain;i++));do

    domainGroup=${domainList[$i]}

    j=0

    for domain in ${domainGroup[@]};do

    # 列表的第一个项目,是主域名

    if ((j==0));then

    domainName=$domain

    domainInfo=$(echo $domainListInfo|getJSONObjByKey 'name' $domainName) 

    domainid=$(getDataByKey "$domainInfo" 'id')

    recordList=$(getRecordList $domainid)

    if [ -z "$recordList" ];then

    writeLog 'DNSPOD tell me record list null,waiting...'

    return 1

    fi

    checkStatusCode "$recordList" 1

    else

    # 从dnspod获取要设置的子域名记录的信息

    recordInfo=$(echo $recordList|getJSONObjByARecord $domain)

    # 如果取不到记录,则不处理

    if [ -z "$recordInfo" ];then

    continue

    fi

     

    # 从dnspod获取要设置的子域名的ip

    oldip=$(getDataByKey "$recordInfo" 'value')

     

    # 检测获取到的旧ip地址是否符合ip规则

    if ! checkip "$oldip";then

    writeLog 'get old ip error!it is "$oldid".waiting...'

    continue

    fi

     

    if [ "$newip" != "$oldip" ];then

    recordid=$(getDataByKey "$recordInfo" 'id')

    recordName=$(getDataByKey "$recordInfo" 'name')

    recordTtl=$(getDataByKey "$recordInfo" 'ttl')

    recordType=$(getDataByKey "$recordInfo" 'type')

    # 由于从服务器获取的线路是utf编码,目前无法知道如何转换成中文,因此在这里写


    死。dnspod中免费用户的默认线路的名称就是“默认”

    #recordLine=$(getDataByKey "$recordInfo" 'line')

    recordLine='默认'

    # 判断取值是否正常,如果值为空就不处理

    if [ -n "$recordid" ] && [ -n "$recordTtl" ] && [ -n "$recordType" ]; then

    # 使用数组记录需要修改的子域名的所有值

    # 这里一共有8个参数,与setRecord中的参数对应

    changedRecords[${#changedRecords[@]}]="$domainid $recordid $domain 


    $recordType $recordLine $recordTtl $newip $domainName"

    fi

    fi

    fi

    j=$((j+1))

    done

    done

    }

     

    # 执行检测工作

    go()

    {

    # 由于获取到的数据多了一些多余的字符,所以提取ip地址的部分

    # 从api中获取当前的外网ip

    newip=$(curl -s $ipUrl|grep -o $(getRegexp 'value'))

    # 如果获取最新ip错误,就继续等待下一次取值

    if ! checkip "$newip";then

    writeLog 'can not get new ip,waiting...'

    sleep $delay

    continue

    fi

    # 获取需要修改的记录

    getChangedRecords

    if (( ${#changedRecords[@]} > 0 ));then

    writeLog "ip is changed,new ip is:$newip"

    setRecords

    fi

    }

     

    while [ 1 ];do

    go

    sleep $delay

    done


    展开全文
  • 动态域名ddns开源客户端inadyn的移植

    千次阅读 2013-11-09 09:26:22
    一.交叉编译 ...下载inadyn.v1.96.2.zip...证明xxx.no-ip.biz已经捆绑也捆绑对了你的ip 14.213.239.xxx了,这样就算域名解析成功了. 网络服务商80端口有时候给封了,最好试试别的端口,问题不一定在你这边 O(∩_∩)O

    一.交叉编译

    http://inatech.eu/inadyn/readme.html下载inadyn.v1.96.2.zip解压
    cd inadyn
    修改makefile

    COMPILE=gcc  -Wall  -pedantic -c  $(ARCH_SPECIFIC_CFLAGS) $(CFLAGS) -o "$(OUTDIR)/$(*F).o" $(CFG_INC) "$<"
    LINK=gcc $(CFLAGS) -o "$(OUTFILE)" $(OBJ) $(CFG_LIB) $(ARCH_SPECIFIC_LIBS)

    改成

    COMPILE=arm-none-linux-gnueabi-gcc  -Wall  -pedantic -c  $(ARCH_SPECIFIC_CFLAGS) $(CFLAGS) -o "$(OUTDIR)/$(*F).o" $(CFG_INC) 
    
    "$<"
    LINK=arm-none-linux-gnueabi-gcc $(CFLAGS) -o "$(OUTFILE)" $(OBJ) $(CFG_LIB) $(ARCH_SPECIFIC_LIBS)

    编译make

    二.使用测试

    inadyn支持多个服务商的ddns解析
    用法inadyn --dyndns_system 服务地址 -u 用户名 -p 密码 -a 域名
    针对部分ddns解析网站的服务地址为
    no-ip.com   default@no-ip.com
    www.dyndns.org  dyndns@dyndns.org
    www.3322.org  dyndns@3322.org
    www.DtDNS.com  www.dtdns.com 
    freedns.afraid.org default@freedns.afraid.org
    ...还有很多

    运行inadyn后成功会打印如下

    INADYN: Started 'INADYN version 1.96.2' - dynamic DNS updater.
    I:INADYN: IP address for alias 'xxx.no-ip.biz' needs update to '14.214.239.xxx'
    I:INADYN: Alias 'xxx.no-ip.biz' to IP '14.214.239.xxx' updated successful.

    命令提示符里

    ping一下xxx.no-ip.biz 会

    正在 Ping xxx.no-ip.biz [14.214.239.xxx] 具有 32 字节的数据:
    来自 14.214.239.xxx 的回复: 字节=32 时间=16ms TTL=64
    来自 14.214.239.xxx 的回复: 字节=32 时间=3ms TTL=64
    来自 14.214.239.xxx 的回复: 字节=32 时间=11ms TTL=64
    来自 14.214.239.xxx 的回复: 字节=32 时间=4ms TTL=64
    
    14.214.239.xxx 的 Ping 统计信息:
        数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
    往返行程的估计时间(以毫秒为单位):
        最短 = 3ms,最长 = 16ms,平均 = 8ms

    证明xxx.no-ip.biz已经捆绑也捆绑对了你的ip 14.213.239.xxx了,这样就算域名解析成功了.

    网络服务商80端口有时候给封了,最好试试别的端口,问题不一定在你这边 O(∩_∩)O

    展开全文
  • 版本1.0.1 更新时间 2008-12-21功能,暂时只支持一个noip.cn和一个3322.org动态域名,可以在mihua.ini文件里面设置更新时间,DDNS_UPDATE 单位30秒。上www.noip.cn和3322.org去注册帐号。下载软件后修改一下mihua....

    版本1.0.1 更新时间 2008-12-21
    功能,暂时只支持一个noip.cn和一个3322.org动态域名,可以在mihua.ini文件里面设置更新时间,DDNS_UPDATE 单位30秒。

    上www.noip.cn和3322.org去注册帐号。

    下载软件后修改一下mihua.ini,

    有两个还比较稳定的ddns的服务商互相备份,暂时对一些搞小站的站长也够用了吧?

    源码分析:

    流程很简单,有个UDP的注册器,TCP的注册器。

    UDP是开了一个线程在一个UDP端口循环接收服务器回应消息。TCP则是用定时器调用。配置文件都在mihua.ini设置。这个程序很小,很适合VC的初学者。

    程序与源码下载地址 米花网 http://www.mihua.net/node/55m.htm

    展开全文
  • 以下软件只适合拥有公网IP的用户哦,要是您没有公网IP,只能和我们联系,获取VPN了 EasyRadius从1.65开始就提供...为了让用户不需要浪费300元/年去购买3322收费域名,我们花了一些时间对EasyRadius的接口进行升级 ...
  • 用python实现的ddns 脚本使用方法:https://blog.zeruns.tech/archives/507.html
  • 动态域名解析DDNS v2008

    2019-11-12 19:20:36
    完全免费的动态域名解析软件,支持所有解析服务,是完全的泛域名解析,同一域名下的不同子域名可以分别解析到动态ip和静态ip上,是国内首创的动态和静态混合解析服务,解析记录没有任何限制,支持所有服务。...
  • Python实现阿里云域名DDNS支持ipv4和ipv6 需要安装的库: pip install aliyun-python-sdk-core-v3 pip install aliyun-python-sdk-domain pip install aliyun-python-sdk-alidns pip install requests 详细使用方法...
  • OpenWrt配置阿里云动态域名服务DDNS

    千次阅读 2020-12-23 03:02:36
    OpenWrt配置阿里云动态域名服务DDNSOpenWrt配置阿里云动态域名服务DDNS创建Access Key添加权限创建A记录设置OpenWrt DDNS验证 OpenWrt配置阿里云动态域名服务DDNS DDNS(Dynamic Domain Name Server,动态域名服务)...
  • 动态域名解析(Dynamic DNS,简称DDNS)是把互联网域 服务原理 服务原理 名指向可变IP地址的系统。DNS只是提供了域名和IP地址之间的静态对应关系,当IP地址发生变化时,DNS无法动态的更新域名和IP地址之间的对应关系...
  • DNS部署之动态域名解析DDNS dns+dhcp=ddns=动态域名解析=花生壳 DDNSDDNS:之前的远程更新是基于静态网络做的,但是如果我们用动态网络获取ip,dns就不能及时更新到ip的变化。此时就需要把dhs和dhcp连接起来,...
  • 使用阿里云域名解析服务,配置动态解析,充分利用家里的动态外网IP来访问自己家里或者办公室的电脑或服务器,可添加位系统服务,自动获取公网IP,并自动更新解析到指定的阿里云域名
  • DDNS动态域名解析

    千次阅读 2019-05-16 15:15:59
    DDNS(Dynamic Domain Name Server)是动态域名服务的缩写。 DDNS是将用户的动态IP地址映射到一个固定的域名解析服务上,用户每次连接网络的时候客户端程序就会通过信息传递把该主机的动态IP地址传送给位于服务商...
  • 西部数码动态域名系统(D-dns)是一套动态域名解析服务客户端软件。本软件是绿色软件,无需安装,下载后双击运行即可。支持所有解析服务,是完全的泛域名解析。运行本客户端,你可以在一台电脑上同时建立无数个不同的二...
  • DDNS 动态域名解析

    2019-08-08 14:44:57
    动态域名解析服务,是将用户的动态IP地址映射到一个固定的域名解析服务上,用户每次连接网络的时候,客户端程序就会通过信息传递把该主机的动态IP地址传送给位于服务商主机上的服务器程序,服务程序负责提供DNS服务...
  • 主要介绍了如何通过阿里云实现动态域名解析DDNS的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
  • 今天给大家讲一下DDNS动态域名服务,简单说就是申请一个域名绑定到自己动态的ip上,我们现在大部分的网络是自动获得ip,自己的ip地址是动态的并不固定,所以就用到了DDNS动态域名服务绑定ip进行访问功能。...
  • 前言该脚本的代码大部分是参考自...前置条件1、域名是在阿里云购买的 (我的域名本身就是阿里云买的,其他的域名我没有测试过)2、地址必须是公网地址,不然加了解析也没有用 (这个不用多加解释了)安装阿里云SDK需要...
  • 动态域名解析DDNS V2008

    2008-02-23 13:04:30
    软件名称:动态域名解析DDNS V2008 下载地址: [url]http://www.skycn.com/soft/12444.html[/url] [url]http://www.noip.cn/soft/ddns2008.exe[/url] [url]http://www.downco...
  • 突然发现能提供DDNS的是越来越少了,要么现在收费了,要么已经没这个服务了。好不容易找到的一个国外的DDNS服务,今天发现ping了几次,每次IP都不一样,导致自己的网站一会能打开,一会不能打开。最后发现自己的域名...
  • 动态域名解析DDNS(DHCP+DNS ) 1.开展思路(思维导图) 图2 DDNS实验思维导图 关闭真机DHCP [root@dns named]# rm -fr westos.org.zone* [root@dns named]# ls 172.25.254.ptr named.ca named....
  • OpenWrt利用DNSPod实现动态域名解析DDNS

    万次阅读 2016-01-19 17:51:23
    虽然OpenWrt中有luci-app-ddnsddns-scripts软件包可以实现动态域名解析的功能,但是由于是外国人开发的,不符合国情。 国内比较著名的DDNS服务商是“花生壳”,很久以前我也注册过,那时候什么都不懂。现在...
  • openwrt/LEDE 动态域名解析DDNS

    万次阅读 2019-09-15 11:05:24
    1.域名的申请不再介绍,到域名控制台里先加一条A记录,指向路由器现公网IP 2.进路由设置 3.更换到需要用服务商协议 3.查询主机名与域名一致, 4用户名和密码到服务商那获取 5密码复制 ...
  • 现在就可以通过域名ddns1.imki.club 访问主机了。   IPV6解析 1. 在网页管理界面中新建一条解析ipv6的AAAA记录,可以先随便乱填一个地址。 2. 在ddnspod.sh 开头,IPtype值改为3,切换到 IPv6 ...
  • API的使用 官方手册 ... 生成自己的API密钥 注意密钥只显示一次,生成后自己...接着就可以自己写动态域名解析脚本了,获取自己的IP地址的话可以GET全球下面的网址 https://202020.ip138.com/ (๑•̀ㅂ•́)و✧ ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 582
精华内容 232
关键字:

动态域名ddns