mgsky1 / ddns Goto Github PK
View Code? Open in Web Editor NEWAn implementation of DDNS with Python and Aliyun API 利用Python+阿里云云解析API实现DDNS
License: Apache License 2.0
An implementation of DDNS with Python and Aliyun API 利用Python+阿里云云解析API实现DDNS
License: Apache License 2.0
{'type': 'A', 'ip': '182.151.231.225'}
失败!原因为
The DNS record does not exist in your account.
可参考:https://help.aliyun.com/document_detail/29774.html?spm=a2c4g.11186623.2.20.fDjexq#%E9%94%99%E8%AF%AF%E7%A0%81
或阿里云帮助文档
在顶级目录运行,出现题目中的错误,在src目录正常运行。请修改一些说明。
Traceback (most recent call last):
File "DDNS.py", line 3, in
from Utils import Utils
File "/home/DDNS/Utils.py", line 3, in
import IpGetter
File "/home/DDNS/IpGetter.py", line 2, in
import urllib.request
请问这是怎么回事啊,是哪里没调好么
Traceback (most recent call last):
File "DDNS.py", line 13, in <module>
from Utils import Utils
File "/root/projects/DDNS/src/Utils.py", line 15, in <module>
from CommonRequestSingleton import CommonRequestSing
File "/root/projects/DDNS/src/CommonRequestSingleton.py", line 6, in <module>
from aliyunsdkcore.request import CommonRequest
ImportError: cannot import name 'CommonRequest'
sdk过时了?还是感谢
(DDNS) leva@sweb:~/DDNS$ python DDNS.py
{'type': 'A', 'ip': '111.61.66.60'}
失败!原因为
The DNS record does not exist in your account.
可参考:https://help.aliyun.com/document_detail/29774.html?spm=a2c4g.11186623.2.20.fDjexq#%E9%94%99%E8%AF%AF%E7%A0%81
或阿里云帮助文档
出现以上问题如何解决,请作者给个解决方案,谢谢。
执行python3 DDNS.py,报错了。。。
Traceback (most recent call last):
File "DDNS.py", line 11, in
from aliyunsdkcore.acs_exception.exceptions import ServerException
ModuleNotFoundError: No module named 'aliyunsdkcore'
config.json 这个文件,如果我只有一级域名,是不是二级不用填写呢?
我的域名类似: jordan.online
Traceback (most recent call last):
File "DDNS.py", line 45, in
result = DDNS(isipv6)
File "DDNS.py", line 19, in DDNS
recordId = Utils.getRecordId(Utils.getConfigJson().get('Second-level-domain'))
File "/root/lmt/DDNS/src/Utils.py", line 38, in getRecordId
response = client.do_action_with_exception(request)
File "/usr/local/lib/python3.6/site-packages/aliyunsdkcore/client.py", line 467, in do_action_with_exception
raise exception
aliyunsdkcore.acs_exception.exceptions.ServerException: HTTP Status: 400 Error:Forbidden.RAM User not authorized to operate on the specified resource, or this API doesn't support RAM. RequestID: 8E9039D9-BEEF-40B8-B79C-E722DBB2DA24
执行DDNS时,Utils.getRecordId调用失败,没有权限操作资源
好厉害,能搭建个cenos 运行吗
使用RAM用户管理多个域名,并指定单个用户只拥有这个域名解析的管理权限(本操作都在阿里云控制台操作)
然后-->自定义策略(修改单个域名的权限)
单个域名权限代码
{
"Version": "1",
"Statement": [
{
"Action": "",
"Resource": "acs:alidns:::domain/oningte.com",
"Effect": "Allow"
},
{
"Action": "",
"Resource": "acs:alidns:::instance/alidns-cn-o400uxz3701",
"Effect": "Allow"
},
{
"Action": [
"alidns:DescribeSiteMonitorIspInfos",
"alidns:DescribeSiteMonitorIspCityInfos",
"alidns:DescribeSupportLines",
"alidns:DescribeDomains",
"alidns:DescribeDomainNs",
"alidns:DescribeDomainGroups"
],
"Resource": "acs:alidns:::*",
"Effect": "Allow"
}
]
}
经常出现 urllib.error.HTTPError: HTTP Error 503: Service Unavailable。
修改了一下。
失败!原因为
The specified domain name does not exist. Refresh the page and try again.
可参考:https://help.aliyun.com/document_detail/29774.html?spm=a2c4g.11186623.2.20.fDjexq#%E9%94%99%E8%AF%AF%E7%A0%81
或阿里云帮助文档
这段代码在本机上跑没问题 win10
但是在nas上跑就报错 winserver2019
代码如下
https://pic.dark.moe/images/2019/03/26/a5405689e9b6aa092760d453665cc67c.png
这个如果每10s执行一次会不会被封ip,有没有什么限制
master上的代码只需要修改IpGetter.py。 在python2.7版本中urllib.request对象不存在,可通过urllib2.urlopen(url)替代原有python3的urllib.request.urlopen(url)。 修改:
step1: 导包修改
`import sys
import json
if sys.version_info.major == 2:
#python2
import urllib2
else:
#python3
import urllib.request`
Step2: 添加通用url访问方法
def urlopen(url): if sys.version_info.major == 2: return urllib2.urlopen(url) else: return urllib.request.urlopen(url)
Step3: 替换文件用原有代码:response = urllib.request.urlopen(url) 为
response = urlopen(url)
root@raspberrypi:~# /bin/sh /root/DDNS-master/src/ddns.sh
{'ip': '117.25.38.6', 'type': 'A'}
失败!原因为
The domain is forbidden to operate because it is expired.
可参考:https://help.aliyun.com/document_detail/29774.html?spm=a2c4g.11186623.2.20.fDjexq#%E9%94%99%E8%AF%AF%E7%A0%81
或阿里云帮助文档
成功更新了阿里云的解析,
路由器设置转发端口 。 入站 出站开了权限,
但是还是不行这个。
内网IP地址 内网端口 外网端口 协议 操
192.168.0.102 10101 85 全部
失败!原因为
The DNS record does not exist in your account.
重新更新了KEY和解析记录都不行唉~
在mac上运行始终报错json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes,
后用工具校验config.json发现格式有问题,但不清楚为什么,可能是符号问题,重新用正确格式编辑json后就能用了,建议重新修改一下config.json并用工具校验
感谢!不过获取ip没必要那么复杂吧,有一些直接请求就可返回ip的地址,比如https://api.ipify.org/?format=json
我使用时出现以下错误
Traceback (most recent call last):
File "DDNS.py", line 49, in <module>
result = DDNS(isipv6)
File "DDNS.py", line 21, in DDNS
ip = Utils.getRealIPv6()
File "/usr/bin/DDNS/src/Utils.py", line 27, in getRealIPv6
ip = IpGetter.getRealIpV6(url)
File "/usr/bin/DDNS/src/IpGetter.py", line 72, in getRealIpV6
jsonData = json.loads(data)
File "/usr/lib/python3.8/json/__init__.py", line 357, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.8/json/decoder.py", line 340, in decode
raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 1 column 5 (char 4)
命令参数为 python DDNS.py -6
,系统为树莓派版 Ubuntu 20.04.2 LTS
,使用 python3
,正常安装了 aliyun-python-sdk-core-v3
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.