精华内容
下载资源
问答
  • 路由器中的动态域名不能访问,外网IP可以访问。
    2021-01-06 11:29:16

    打开CMD,输入nslookup 动态域名,解析后,即可解决。

    更多相关内容
  • 通过批处理调用curl来进行changeip的ddns更新,解压到本地某路径,简单修改一下帐户和域名信息,点击start.bat直接运行即可。 参数说明: set user=用户名 set password=密码 set domain=你的ddns set url=...
  • 动态域名IP更新系统结构:易语言动态域名IP更新源码,动态域名IP更新 ======窗口程序集1 || ||------__启动窗口_创建完毕 || ||------_按钮_查询IP_被单击 || ||------_按钮_更新_被单击 || ||------_按钮
  • 老是登陆阿里网站手动更改域名对应的IP地址不是办法啊&*%¥#@ 自己写个工具自动绑定吧,求人不如求已,开工。。。。花了两天时间搞定。NND,阿里的API接口好几个坑。。。。。 工具怎么用自己看压缩包中的readme.txt...
  • 易语言更新动态域名IP源码,更新动态域名IP
  • 易语言动态域名IP更新.rar 易语言动态域名IP更新.rar 易语言动态域名IP更新.rar 易语言动态域名IP更新.rar 易语言动态域名IP更新.rar 易语言动态域名IP更新.rar
  • 易语言源码易语言更新动态域名IP源码.rar 易语言源码易语言更新动态域名IP源码.rar 易语言源码易语言更新动态域名IP源码.rar 易语言源码易语言更新动态域名IP源码.rar 易语言源码易语言更新动态域名IP源码.rar ...
  • Nginx在vhost里的配置站点,通过proxy转发到动态域名的具体配置。 反向代理,动态域名 ,Proxy
  • 易语言源码动态域名IP更新.rar
  • #自动将动态域名a.b.c.com的公网IP设置成jcyk8s.com,jcy888.com在/etc/dnsmasq.hosts中的ip touch /tmp/lastIPAddress # 读取最近外网地址 lastIPAddress() { inter="/tmp/lastIPAddress" cat $inter } #...
    #!/bin/sh
    # 保存为getIP.sh
    # 自动将动态域名a.b.c.com的公网IP设置成jcyk8s.com,jcy888.com在/etc/dnsmasq.hosts中的ip
    
    touch /tmp/lastIPAddress
    # 读取最近外网地址
        lastIPAddress() {
            inter="/tmp/lastIPAddress"
            cat $inter
        }
    	
    #公网域名
    ADDR=<你的动态域名:比如a.b.c.com>
    lastIP=$(lastIPAddress)
    hostIP=`ping ${ADDR} -c 1 | sed '1{s/[^(]*(//;s/).*//;q}'`
    if [ "$lastIP" != "$hostIP" ] && [ ! -z "$hostIP" ] ; then
    	echo "【互联网 IP 变动】" "目前 IP: ${hostIP}"
    	echo "【互联网 IP 变动】" "上次 IP: ${lastIP}"
    	echo -n $hostIP > /tmp/lastIPAddress
    	sed -i.bak -n '{s/.* jcyk8s.com/'"$hostIP"' jcyk8s.com/;p;g}'  /etc/dnsmasq.hosts
    	sed -i.bak -n '{s/.* jcy888.com/'"$hostIP"' jcy888.com/;p;g}'  /etc/dnsmasq.hosts
    	echo $(date) > /tmp/666.txt
    else
        echo "无变化"
    fi
    

    配合frpc做http服务服用非常方便!

    # 想要每分钟都执行?添加没分钟执行一次的更新脚本的任务

    # crontab -e

    * * * * * /mnt/ntfsc/getIP.sh
    

    展开全文
  • 在Internet上,用户的域名IP地址是一一对应的。但以虚拟拨号的方式上网,则产生 了动态IP地址。这对于没有太多钱申请域名的电脑爱好者造成了麻烦。本文将为大家介绍如何在Linux下实现动态IP域名自动指向。
  • 动态域名IP更新.zip易语言项目例子源码下载动态域名IP更新.zip易语言项目例子源码下载 1.合个人学习技术做项目参考 2.适合学生做毕业设计参考 3.适合小团队开发项目参考
  • 代码文件是用python开发,目的是解决:域名解析时,公网是动态IP的问题。 域名在阿里云中,申请阿里云的accessKey; 在源码中替换自己的域名及accessKey
  • 易语言更新动态域名IP源码.zip易语言项目例子源码下载易语言更新动态域名IP源码.zip易语言项目例子源码下载 1.合个人学习技术做项目参考 2.适合学生做毕业设计参考 3.适合小团队开发项目参考
  • 动态域名解析,或DNSR,通常用于解析IP地址经常变化的域名。电信网络提供了公网IP,给广大程序员远程办公、内容分享等方面带来了极大的便利。但公网IP是动态的,它会经常变化,因此通过IP的方式访问非常不友好。因此...
  • 动态域名getip

    2013-09-10 15:53:28
    动态域名getip
  • 手机设置--更多--移动网络--接入点名称(APN)--进去找到APN协议--设置为 ipv4/...该APP运行在安卓设备上,可以将该安卓设备的IPV6地址实时解析出来,并能监视IP地址的变化,一旦IP发生改变,域名就会指向新的IP地址。
  • 使用阿里云域名解析服务,配置动态解析,充分利用家里的动态外网IP来访问自己家里或者办公室的电脑或服务器,可添加位系统服务,自动获取公网IP,并自动更新解析到指定的阿里云域名
  • 我们私有的IP,是运营商动态分配的。想域名解析的童鞋,就需要动态解析下了。。 1.阿里云,就是万网买的域名,阿里云有api可以动态更新的 2.name.com的域名动态更新要认证啥的(英文不好),所以换车借助noip.com...
  • 本软件适用于自己有动态公网IP的朋友!就那种IP过几天就被猫自动重拨号导致变更的!当自己电脑搭建了WEB服务器后,自己的网站啥的是不是访问很不方便呀?? 本软件对接的cloudflare域名管理平台!就是实时监测本机...
  • 我用Python实现了域名绑定动态IP!!

    写在前面

    一般家庭网络的公网IP都是不固定的,而我又想通过域名来访问自己服务器上的应用,也就是说:需要通过将域名绑定到动态IP上来实现这个需求。于是乎,我开始探索实现的技术方案。通过在网上查阅一系列的资料后,发现阿里云可以做到实现动态域名解析DDNS。于是乎,一顿操作下来,我实现了域名绑定动态IP。这里,我们以Python为例实现。

    Java版源码已提交到:https://github.com/sunshinelyz/mykit-ddns

    阿里云DDNS前置条件

    • 域名是在阿里云购买的
    • 地址必须是公网地址,不然加了解析也没有用

    通过阿里云提供的SDK,然后自己编写程序新增或者修改域名的解析,达到动态解析域名的目的;主要应用于pppoe拨号的环境,比如家里设置了服务器,但是外网地址经常变化的场景;再比如公司的pppoe网关,需要建立vpn的场景。

    安装阿里云SDK

    需要安装两个SDK库,一个是阿里云核心SDK库,一个是阿里云域名SDK库;

    阿里云核心SDK库

    pip install aliyun-python-sdk-core
    

    阿里云域名SDK库

    pip install aliyun-python-sdk-domain
    

    阿里云DNSSDK库

    pip install aliyun-python-sdk-alidns
    

    设计思路

    • 获取阿里云的accessKeyId和accessSecret
    • 获取外网ip
    • 判断外网ip是否与之前一致
    • 外网ip不一致时,新增或者更新域名解析记录

    实现方案

    这里,我直接给出完整的Python代码,小伙伴们自行替换AccessKey和AccessSecret。

    #!/usr/bin/env python
    #coding=utf-8
    
    # 加载核心SDK
    from aliyunsdkcore.client import AcsClient
    from aliyunsdkcore.acs_exception.exceptions import ClientException
    from aliyunsdkcore.acs_exception.exceptions import ServerException
    
    # 加载获取 、 新增、 更新、 删除接口
    from aliyunsdkalidns.request.v20150109 import DescribeSubDomainRecordsRequest, AddDomainRecordRequest, UpdateDomainRecordRequest, DeleteDomainRecordRequest
    
    # 加载内置模块
    import json,urllib
    
    # AccessKey 和 Secret  建议使用 RAM 子账户的 KEY 和 SECRET 增加安全性
    ID = 'xxxxxxx'
    SECRET = 'xxxxxx'
    
    # 地区节点 可选地区取决于你的阿里云帐号等级,普通用户只有四个,分别是杭州、上海、深圳、河北,具体参考官网API
    regionId = 'cn-hangzhou'
    
    # 配置认证信息
    client = AcsClient(ID, SECRET, regionId)
    
    # 设置主域名
    DomainName = 'binghe.com'
    
    # 子域名列表  列表参数可根据实际需求增加或减少值
    SubDomainList = ['a', 'b', 'c']
    
    # 获取外网IP   三个地址返回的ip地址格式各不相同,3322 的是最纯净的格式, 备选1为 json格式  备选2 为curl方式获取  两个备选地址都需要对获取值作进一步处理才能使用
    def getIp():
        # 备选地址: 1, http://pv.sohu.com/cityjson?ie=utf-8    2,curl -L tool.lu/ip
        with urllib.request.urlopen('http://www.3322.org/dyndns/getip') as response:
            html = response.read()
            ip = str(html, encoding='utf-8').replace("\n", "")
        return ip
    
    # 查询记录
    def getDomainInfo(SubDomain):
        request = DescribeSubDomainRecordsRequest.DescribeSubDomainRecordsRequest()
        request.set_accept_format('json')
    
        # 设置要查询的记录类型为 A记录   官网支持A / CNAME / MX / AAAA / TXT / NS / SRV / CAA / URL隐性(显性)转发  如果有需要可将该值配置为参数传入
        request.set_Type("A")
    
        # 指定查记的域名 格式为 'test.binghe.com'
        request.set_SubDomain(SubDomain)
    
        response = client.do_action_with_exception(request)
        response = str(response, encoding='utf-8')
    
        # 将获取到的记录转换成json对象并返回
        return json.loads(response)
    
    # 新增记录 (默认都设置为A记录,通过配置set_Type可设置为其他记录)
    def addDomainRecord(client,value,rr,domainname):
        request = AddDomainRecordRequest.AddDomainRecordRequest()
        request.set_accept_format('json')
    
        # request.set_Priority('1')  # MX 记录时的必选参数
        request.set_TTL('600')       # 可选值的范围取决于你的阿里云账户等级,免费版为 600 - 86400 单位为秒 
        request.set_Value(value)     # 新增的 ip 地址
        request.set_Type('A')        # 记录类型
        request.set_RR(rr)           # 子域名名称  
        request.set_DomainName(domainname) #主域名
    
        # 获取记录信息,返回信息中包含 TotalCount 字段,表示获取到的记录条数 0 表示没有记录, 其他数字为多少表示有多少条相同记录,正常有记录的值应该为1,如果值大于1则应该检查是不是重复添加了相同的记录
        response = client.do_action_with_exception(request)
        response = str(response, encoding='utf-8')
        relsult = json.loads(response)
        return relsult
    
    # 更新记录
    def updateDomainRecord(client,value,rr,record_id):
        request = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
        request.set_accept_format('json')
    
        # request.set_Priority('1')
        request.set_TTL('600')
        request.set_Value(value) # 新的ip地址
        request.set_Type('A')
        request.set_RR(rr)
        request.set_RecordId(record_id)  # 更新记录需要指定 record_id ,该字段为记录的唯一标识,可以在获取方法的返回信息中得到该字段的值
    
        response = client.do_action_with_exception(request)
        response = str(response, encoding='utf-8')
        return response
    
    # 删除记录
    def delDomainRecord(client,subdomain):
        info = getDomainInfo(subdomain)
        if info['TotalCount'] == 0:
            print('没有相关的记录信息,删除失败!')
        elif info["TotalCount"] == 1:
            print('准备删除记录')
            request = DeleteDomainRecordRequest.DeleteDomainRecordRequest()
            request.set_accept_format('json')
    
            record_id = info["DomainRecords"]["Record"][0]["RecordId"]
            request.set_RecordId(record_id) # 删除记录需要指定 record_id ,该字段为记录的唯一标识,可以在获取方法的返回信息中得到该字段的值
            result = client.do_action_with_exception(request)
            print('删除成功,返回信息:')
            print(result)
        else:
            # 正常不应该有多条相同的记录,如果存在这种情况,应该手动去网站检查核实是否有操作失误
            print("存在多个相同子域名解析记录值,请核查后再操作!")
    
    # 有记录则更新,没有记录则新增
    def setDomainRecord(client,value,rr,domainname):
        info = getDomainInfo(rr + '.' + domainname)
        if info['TotalCount'] == 0:
            print('准备添加新记录')
            add_result = addDomainRecord(client,value,rr,domainname)
            print(add_result)
        elif info["TotalCount"] == 1:
            print('准备更新已有记录')
            record_id = info["DomainRecords"]["Record"][0]["RecordId"]
            cur_ip = getIp()
            old_ip = info["DomainRecords"]["Record"][0]["Value"]
            if cur_ip == old_ip:
                print ("新ip与原ip相同,不更新!")
            else:
                update_result = updateDomainRecord(client,value,rr,record_id)
                print('更新成功,返回信息:')
                print(update_result)
        else:
            # 正常不应该有多条相同的记录,如果存在这种情况,应该手动去网站检查核实是否有操作失误
            print("存在多个相同子域名解析记录值,请核查删除后再操作!")
    
    
    IP = getIp()
    
    # 循环子域名列表进行批量操作
    for x in SubDomainList:
        setDomainRecord(client,IP,x,DomainName)
    
    # 删除记录测试
    # delDomainRecord(client,'b.jsoner.com')
    
    # 新增或更新记录测试
    # setDomainRecord(client,'192.168.3.222','a',DomainName)
    
    # 获取记录测试
    # print (getDomainInfo(DomainName, 'y'))
    
    # 批量获取记录测试
    # for x in SubDomainList:
    #     print (getDomainInfo(DomainName, x))
    
    # 获取外网ip地址测试
    # print ('(' + getIp() + ')')
    

    Python脚本的功能如下:

    • 获取外网ip地址。
    • 获取域名解析记录。
    • 新增域名解析记录。
    • 更新域名解析记录。
    • 删除域名解析记录 (并不建议将该功能添加在实际脚本中)。
    • 批量操作,如果记录不存在则添加记录,存在则更新记录。

    另外,有几点需要特别说明:

    • 建议不要将删除记录添加进实际使用的脚本当中。
    • 相同记录是同一个子域名的多条记录,比如 test.binghe.com。
    • 脚本并没有验证记录类型,所以同一子域名下的不同类型的记录也会认为是相同记录,比如:有两条记录分别是 test.binghe.com 的 A 记录 和 test.binghe.com 的 AAAA 记录,会被认为是两条相同的 test.binghe.com 记录.如果需要判定为不同的记录,小伙伴们可以根据上述Python脚本自行实现。
    • 可以通过判断获取记录返回的 record_id 来实现精确匹配记录。

    最后,可以将以上脚本保存为文件之后,通过定时任务,来实现定期自动更新ip地址。

    好了,今天就到这儿吧!我们下期见!!

    展开全文
  • 服务器 (IP: A.A.A.A) 启动DNS动态解析的一个小进程.  yourdomain.com的域名文件为 /var/named/yourdomain.com  再建个/var/named/yourdomain.com.static (模板文件可以用来生成yourdomain.com的)  (JDK1.3 , ...
  • 如果你刚好使用了阿里云的域名云解析,那么此时,你可以使用本脚本实现 一级域名动态解析了。
  • 阿里云域名 动态ip绑定 python方案

    千次阅读 2022-02-17 14:56:56
    用python解决阿里云域名绑定动态ip

    阿里云域名 动态ip绑定 python方案


    思路:阿里云提供dns域名解析api,查出外网ip,定时更新域名解析。
    在这里插入图片描述

    一、配置config.json

    用配置文件,动态配置二级域名,ip,accessKey等。

    {
      "ip": "223.76.234.68",
      "accessKeyId": "", //阿里云控制台生成
      "accessSecret": "",
      "domain": "xxx.com.cn", //一级域名
      "subDomain": "test",    //二级域名前缀,多个用英文逗号隔开
      "time": "6"  //定时更新,秒
    }
    

    二、代码

    python3依赖:

    pip install requests
    pip install aliyun-python-sdk-alidns
    pip install aliyun-python-sdk-core
    pip install aliyun-python-sdk-domain
    

    代码:

    import json
    import time
    
    import requests
    from aliyunsdkalidns.request.v20150109.AddDomainRecordRequest import AddDomainRecordRequest
    from aliyunsdkalidns.request.v20150109.DescribeSubDomainRecordsRequest import DescribeSubDomainRecordsRequest
    from aliyunsdkalidns.request.v20150109.UpdateDomainRecordRequest import UpdateDomainRecordRequest
    from aliyunsdkcore.client import AcsClient
    
    #获取外网ip
    def get_internet_ip():
        with requests.get('http://www.3322.org/dyndns/getip') as response:
            html = response.content
            ip = str(html, encoding='utf-8').replace("\n", "")
        return ip
    
    #记录上次外网ip
    def wirte_to_config(data):
        with open("./config.json", "w") as jsonFile:
            json.dump(data, jsonFile, ensure_ascii=False)
    
    #读取第一步配置
    def get_config():
        with open('./config.json', 'r', encoding='utf8')as fp:
            return json.load(fp)
            
    #获取二级域名信息
    def Describe_SubDomain_Records(client, record_type, subdomain):
        request = DescribeSubDomainRecordsRequest()
        request.set_accept_format('json')
        request.set_Type(record_type)
        request.set_SubDomain(subdomain)
        response = client.do_action_with_exception(request)
        response = str(response, encoding='utf-8')
        relsult = json.loads(response)
        return relsult
    
    def add_record(client, priority, ttl, record_type, value, rr, domainname):
        request = AddDomainRecordRequest()
        request.set_accept_format('json')
        request.set_Priority(priority)
        request.set_TTL(ttl)
        request.set_Value(value)
        request.set_Type(record_type)
        request.set_RR(rr)
        request.set_DomainName(domainname)
        response = client.do_action_with_exception(request)
        response = str(response, encoding='utf-8')
        relsult = json.loads(response)
        return relsult
    
    def update_record(client, ttl, record_type, value, rr, record_id):
        request = UpdateDomainRecordRequest()
        request.set_accept_format('json')
        request.set_TTL(ttl)
        request.set_Value(value)
        request.set_Type(record_type)
        request.set_RR(rr)
        request.set_RecordId(record_id)
        response = client.do_action_with_exception(request)
        response = str(response, encoding='utf-8')
        return response
    
    def deal_aliyun_domain(client, domain, subs, ip):
        for sub in subs:
            subDomain =  sub  + '.' + domain
            des_relsult = Describe_SubDomain_Records(client, "A", subDomain)
            if des_relsult["TotalCount"] == 0:
                add_record(client, "5", "600", "A", ip, sub, domain)
                print("域名解析新增成功!")
            # 判断子域名解析记录查询结果,TotalCount为1表示存在这个子域名的解析记录,需要更新解析记录,更新记录需要用到RecordId,这个在查询函数中有返回des_relsult["DomainRecords"]["Record"][0]["RecordId"]
            elif des_relsult["TotalCount"] == 1:
                record_id = des_relsult["DomainRecords"]["Record"][0]["RecordId"]
                update_record(client, "600", "A", ip, sub, record_id)
                print("域名解析更新成功!")
            else:
                print("存在两个子域名解析记录值,请核查删除后再操作!")
    
    def run(c):
        ip = get_internet_ip()
        old_ip = c['ip']
        if ip == old_ip:
            print("noupdate" + "\nnew_ip:" + ip + "\nold_ip:" + old_ip)
        else:
            c['ip'] = ip
            wirte_to_config(c)
            client = AcsClient(c['accessKeyId'], c['accessSecret'], 'cn-hangzhou')
            domain = c['domain']
            subs = c['subDomain'].split(',')
            deal_aliyun_domain(client, domain, subs, ip)
    
    if __name__ == "__main__":
        while True:
            c = get_config()
            time.sleep(int(c['time']))
            run(c)
    

    三、打包执行

    window服务器
    安装Pyinstaller,在项目目录中执行

    Pyinstaller -D -w main.py 
    

    并将配置文件放到dist/main目录中,单击mian.exe即可(可能会被杀毒 软件杀掉),

    在这里插入图片描述
    参考引用:https://developer.aliyun.com/article/702552?spm=a2c6h.13813017.content3.1.34115cb6F8LFYY

    展开全文
  • 本程序是针对ADSL宽带动态IP绑定域名进行动态解析,以达到通过域名能实时解析到达ADSL动态IP的目的。 功能说明: 1.ADSL宽带断线自动拨号 2.将宽带拨号IP实时更新到希网域名 3.以系统服务方式开机自动运行 使用...
  • 本php脚本使用腾讯云提供的API,可自动将腾讯云的域名解析修改为当前IP。配合操作系统的周期执行服务(如linux的crontab)可实现动态域名功能。
  • 适用于路由器ddns插件脚本 http://[USERNAME]:[PASSWORD]@members.3322.net/dyndns/update?system=dyndns&amp;hostname=[DOMAIN]&amp;myip=[IP] 浏览器访问 ...[DOMAIN] 替换为 要解析的域名 [IP]...
  • 动态设置域名解析至本地公网 ip 的命令行工具
  • 动态公网ip绑定腾讯域名 ddns解析

    千次阅读 2021-06-09 00:21:15
    我的路由器是k2p刷了openwrt。结果绑定的时候死活不... 进入群晖,控制面板---外部访问 勾选启用支持DDNS 确定之后,进入腾讯云控制台,在域名解析列表处就能看到刚刚设置的8.8.8.8已经修改为我们现在的公网ip地址了。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 125,743
精华内容 50,297
关键字:

动态域名 怎么知道ip