Skip to content

Instantly share code, notes, and snippets.

@fbigun
Forked from chuangbo/README.md
Last active August 29, 2015 14:05

Revisions

  1. @chuangbo chuangbo revised this gist Jul 31, 2012. 1 changed file with 8 additions and 0 deletions.
    8 changes: 8 additions & 0 deletions README.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,8 @@
    替换上你的Email,密码,域名ID,记录ID等参数,就可以运行了。
    会在后台一直运行,每隔30秒检查一遍IP,如果修改了就更新IP。

    获得domain_id可以用curl
    `curl -k https://dnsapi.cn/Domain.List -d "login_email=xxx&login_password=xxx"`

    获得record_id类似
    `curl -k https://dnsapi.cn/Record.List -d "login_email=xxx&login_password=xxx&domain_id=xxx"`
  2. @chuangbo chuangbo created this gist Feb 18, 2011.
    49 changes: 49 additions & 0 deletions pypod.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,49 @@
    #!/usr/bin/env python
    #-*- coding:utf-8 -*-

    import httplib, urllib
    import socket
    import time

    params = dict(
    login_email="email", # replace with your email
    login_password="password", # replace with your password
    format="json",
    domain_id=100, # replace with your domain_od, can get it by API Domain.List
    record_id=100, # replace with your record_id, can get it by API Record.List
    sub_domain="www", # 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

    def getip():
    sock = socket.create_connection(('ns1.dnspod.net', 6666))
    ip = sock.recv(16)
    sock.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, e:
    print e
    pass
    time.sleep(30)