dnspod通过接口解析本地ip python脚本

936次阅读
没有评论

共计 1497 个字符,预计需要花费 4 分钟才能阅读完成。

最近内网搭建了一台 gitlab 服务器,因为是内网没有公网 ip, 为了方便同事访问,dnspod 直接解析了内网 ip
但是网卡使用的是 dhcp 的获取 ip 的,每次关机可能会导致 ip 变动,所以通过 dnspod 接口改写了官方脚本来实现自动解析!
下面是我改下的脚本,你也可以把他写到计划任务里面多少分钟或小时执行一次!

#!/usr/bin/env python2
# -*- coding:utf-8 -*-

import httplib
import urllib
import socket
import time

# Use Token, check https://support.dnspod.cn/Kb/showarticle/tsid/227/
ID = " 秘钥里面设置获取到 "  # relace with yours, get it as link above show you.
Token = " 秘钥里面设置获取到 "  # relace with yours, get it as above link show you.
#

params = dict(login_token=("%s,%s" % (ID, Token)),
    format="json",
    domain_id= 通过 curl 获取到,  # replace with your domain_od, can get it by API Domain.List
    # curl https://dnsapi.cn/Domain.List -d "login_token= 你的 id,Token&format=json"
    record_id= 通过 curl 获取到,  # replace with your record_id, can get it by API Record.List
    #curl 'https://dnsapi.cn/Record.List' -d 'login_token= 你的 id,Token&format=json&domain_id= 上面获取到的'
    sub_domain="dev",  # replace with your sub_domain
    record_line=" 默认 ",  #
)
current_ip = None


def ddns(ip):
    params.update(dict(value=ip))
    headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/json"}
    conn = httplib.HTTPSConnection("dnsapi.cn")
    conn.request("POST", "/Record.Ddns", urllib.urlencode(params), headers)

    response = conn.getresponse()
    print response.status, response.reason
    data = response.read()
    print data
    conn.close()
    return response.status == 200

#获取本机 ip
def getip():
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        s.connect(('8.8.8.8', 80))
        ip = s.getsockname()[0]
    finally:
        s.close()

    return ip


if __name__ == '__main__':
    while True:
        try:
            ip = getip()
            print ip
            if current_ip != ip:
                if ddns(ip):
                    current_ip = ip
        except Exception as e:
            print e
            pass
        time.sleep(30)

微信扫描下方的二维码阅读本文

正文完
 0
yx
版权声明:本站原创文章,由 yx 于2019-11-06发表,共计1497字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码

bttech

文章搜索
一言一句话
-「
随机文章
降本增效之-应用部署到k8s

降本增效之-应用部署到k8s

之前应用都采用了传统的服务器部署,很多服务器都会有内存或者 cpu 浪费的情况。把所有的服务准备都迁移到 k8...
降本增效之-自建k8s监控体系

降本增效之-自建k8s监控体系

使用阿里云 ack, 如果使用阿里云的监控体系一个月是需要几百块钱的监控费用,为了节约这笔费用。使用开源的 p...
ubuntu20安装部署comfyui脚本

ubuntu20安装部署comfyui脚本

基础环境参考上一篇文章安装基本的驱动 这个使用的曲线较高,有一定的学习成本。脚本如下直接使用即可! 微信扫描下...
elasticsearch7.8.0索引备份到阿里云oss以及恢复

elasticsearch7.8.0索引备份到阿里云oss以及恢复

背景需求,阿里云新建了一套 elk 但是数据需要进行迁移备份, 解决方案使用 logstash 迁移很慢,10...
k8s安装chatwoot后配置邮件报超时问题

k8s安装chatwoot后配置邮件报超时问题

k8s 安装好 chathoot 后配置好了邮件的相关变量 官方配置示例 SMTP_ADDRESS: ""SM...