Giter Site home page Giter Site logo

charles94jp / namesilo-ddns Goto Github PK

View Code? Open in Web Editor NEW
239.0 239.0 20.0 1 MB

动态域名解析程序: A python Dynamic DNS service for NameSilo, with logger, email notification, docker support, IPv6 support.

Home Page: https://hub.docker.com/r/charles94jp/ddns/tags

License: MIT License

Shell 7.35% Python 70.24% Batchfile 0.40% VBScript 0.10% HTML 20.87% Dockerfile 1.04%
ddns dns domain ipv6 namesilo network python script

namesilo-ddns's Introduction




namesilo-ddns's People

Contributors

calvinchai avatar charles94jp avatar huangzhuxing avatar seekstar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

namesilo-ddns's Issues

quick start是不是需要更新一下了

# 地址到底应该是/home/ddns-docker/还是/home/docker/ddns?下面几处需要用到地址的地方是不一致的
mkdir -p /home/docker/ddns
# 这里要不要加:latest
docker pull charles94jp/ddns
docker run -d --name ddns -v /home/docker/ddns:/home/NameSilo-DDNS:rw --network host charles94jp/ddns
# --restart=always放在末尾好像会报错,我跑的时候放在run后面了,不知道对不对
# --restart=always
# -e TZ=Asia/Shanghai
cp /home/ddns-docker/conf/conf.json.example /home/ddns-docker/conf/conf.json
vi /home/docker/ddns/conf/conf.json

Feature Request: Update multiple sub-domains

可以把 domain 字段设置为子域名数组吗?一次将多个域名 IP 地址更新为本机地址。

Google Translate: Can the domain field be set to an array of subdomains? Update multiple domain IP addresses to local addresses at once.

Image's platform does not match for Raspberry Pi 4

Greetings, I am trying to use DDNS in a docker container for namesilo using the docker run command provided in the github. My issue is that it seems like arm64/v8 isn't supported and there are only amd64 builds available. I am running a Raspberry Pi 4 via dietpi/raspbian. Any chance to add additional support for this?

`root@DietPi:~/docker# docker run -d --name ddns -v /docker/namesilo/:/home/NameSilo-DDNS:rw charles94jp/ddns

--restart=always

WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
e815e9a71dfd8c7cc7ed752086f299e90a854c726b9321e2a1938061e4a60c5d`

Thank you

Exception: Response error or configuration file error

我根据 READEME 文件第六步,我把项目直接克隆到本地,使用命令 python ddns.py 报错了
PS G:\LearnArckives\doByHand\ddns\name-silo\NameSilo-DDNS> ls

目录: G:\LearnArckives\doByHand\ddns\name-silo\NameSilo-DDNS

Mode LastWriteTime Length Name


d----- 2024/3/16 22:53 conf
d----- 2024/3/16 21:32 docker
d----- 2024/3/16 23:19 lib
d----- 2024/3/16 23:21 log
d----- 2024/3/16 21:32 win
-a---- 2024/3/16 23:56 216 -
-a---- 2024/3/16 21:32 55 .gitignore
-a---- 2024/3/16 21:32 2405 DDNS
-a---- 2024/3/16 21:32 12950 ddns.py
-a---- 2024/3/16 21:32 301 DDNS.service
-a---- 2024/3/16 21:32 520 Dockerfile
-a---- 2024/3/16 21:32 440401 example.png
-a---- 2024/3/16 21:32 1087 LICENSE
-a---- 2024/3/16 21:32 19012 logo.svg
-a---- 2024/3/16 21:32 180431 Network-topology-en.png
-a---- 2024/3/16 21:32 17967 readme.en-us.md
-a---- 2024/3/16 21:32 14439 readme.md

====================================================================================
PS G:\LearnArckives\doByHand\ddns\name-silo\NameSilo-DDNS> python ddns.py
G:\LearnArckives\doByHand\ddns\name-silo\NameSilo-DDNS\ddns.py:68: DeprecationWarning: ssl.OP_NO_SSL*/ssl.OP_NO_TLS* options are deprecated
_SSL_CONTEXT.options ^= ssl.OP_NO_TLSv1
Traceback (most recent call last):
File "G:\LearnArckives\doByHand\ddns\name-silo\NameSilo-DDNS\ddns.py", line 247, in
main()
File "G:\LearnArckives\doByHand\ddns\name-silo\NameSilo-DDNS\ddns.py", line 243, in main
ddns.start()
File "G:\LearnArckives\doByHand\ddns\name-silo\NameSilo-DDNS\ddns.py", line 172, in start
self._namesilo_client.fetch_domains_info()
File "G:\LearnArckives\doByHand\ddns\name-silo\NameSilo-DDNS\lib\namesilo_client.py", line 85, in fetch_domains_info
self._list_dns_api(domain, cache, t='A')
File "G:\LearnArckives\doByHand\ddns\name-silo\NameSilo-DDNS\lib\namesilo_client.py", line 118, in _list_dns_api
raise Exception("Response error or configuration file error")
Exception: Response error or configuration file error

然后调试发现这个
image

httpx.ConnectError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。

这个问题怎么解决

能否每次检测到iP变更,就发送一个提醒邮件

提个建议,因为ddns改namesilo托管的域名的dns,在国内生效时间较长,而动态ip实际变动频率不高,能否增加一个功能,每次检测到ip变更就在修改dns纪录的同时,发送邮件提醒,邮件内可附上最新iP,来让我知道最近访问的时候有域名的解析记录不是最新的风险

你好,docker部署好后出错,跪求解答!

NameSiloClient._list_dns_api[line:98] - ERROR: Error, process stopped. It could be due to the configuration file error, or the NameSilo server error.
第一行日志显示了我的域名和我的公网IP,然后第二行就出现这个
我的环境:UNRIAD docker运行的,已绑定namesilo域名,之前使用软路由代理了unraid,出错了关了还是这样,请求作者解答

由于公网IP获取api隐藏最后一段IP导致程序出错

第一次提issue,如有不对之处请直接指出
源码中关于获取api有六个可选网址,但是默认在第一位的api
https://api-v3.speedtest.cn/ip
返回值隐藏了四段IP的最后一段(这里是我魔法上网的测试结果,实际上我是香港)
{
"code": 0,
"data": {
"country": "俄罗斯",
"province": null,
"city": "莫斯科",
"district": "",
"isp": null,
"lon": "0.0",
"lat": "0.0",
"countryCode": "RU",
"ip": "46.232.121.*",
"operator": null
},
"msg": "ok"
}
IP字段最后是星号,而源码中并没有校验返回IP的合法性导致程序无限使用这个API而namesilo由于IP地址有问题并无法更新当前IP导致程序死锁
希望尽快修复
后面是正常apihttps://forge.speedtest.cn/api/location/info返回的结果
{
"ip": "46.232.121.32",
"full_ip": "46.232.121.32",
"country": "俄罗斯",
"country_code": "RU",
"province": null,
"city": "莫斯科",
"distinct": null,
"isp": null,
"operator": null,
"lon": "37.7239",
"lat": "55.6621",
"net_str": "俄罗斯"
}

请求的 ip 链接的会挂掉

███╗ ██╗ █████╗ ███╗ ███╗ ███████╗ ███████╗ ██╗ ██╗ ██████╗ ██████╗ ██████╗ ███╗ ██╗ ███████╗
████╗ ██║ ██╔══██╗ ████╗ ████║ ██╔════╝ ██╔════╝ ██║ ██║ ██╔═══██╗ ██╔══██╗ ██╔══██╗ ████╗ ██║ ██╔════╝
██╔██╗ ██║ ███████║ ██╔████╔██║ █████╗ ███████╗ ██║ ██║ ██║ ██║ ██║ ██║ ██║ ██║ ██╔██╗ ██║ ███████╗
██║╚██╗██║ ██╔══██║ ██║╚██╔╝██║ ██╔══╝ ╚════██║ ██║ ██║ ██║ ██║ ██║ ██║ ██║ ██║ ██║╚██╗██║ ╚════██║
██║ ╚████║ ██║ ██║ ██║ ╚═╝ ██║ ███████╗ ███████║ ██║ ███████╗ ╚██████╔╝ ██████╔╝ ██████╔╝ ██║ ╚████║ ███████║
╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚══════╝ ╚═╝ ╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═══╝ ╚══════╝

Traceback (most recent call last):
File "/home/NameSilo-DDNS/ddns.py", line 226, in
main()
File "/home/NameSilo-DDNS/ddns.py", line 222, in main
ddns.start()
File "/home/NameSilo-DDNS/ddns.py", line 151, in start
self._namesilo_client.fetch_domains_info()
File "/home/NameSilo-DDNS/lib/namesilo_client.py", line 80, in fetch_domains_info
self._list_dns_api(domain)
File "/home/NameSilo-DDNS/lib/namesilo_client.py", line 108, in _list_dns_api
r = r.split('</record_id>')
AttributeError: 'list' object has no attribute 'split'

DeprecationWarning

启动后回报:”
DeprecationWarning: ssl.OP_NO_SSL*/ssl.OP_NO_TLS* options are deprecated
_SSL_CONTEXT.options ^= ssl.OP_NO_TLSv1

报错了

2023-07-31 02:17:55,044 - CurrentIP.fetch_v6[line:107] - ERROR: [Errno 101] Network unreachable
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions
    yield
  File "/usr/local/lib/python3.9/site-packages/httpcore/backends/sync.py", line 94, in connect_tcp
    sock = socket.create_connection(
  File "/usr/local/lib/python3.9/socket.py", line 844, in create_connection
    raise err
  File "/usr/local/lib/python3.9/socket.py", line 832, in create_connection
    sock.connect(sa)
OSError: [Errno 101] Network unreachable

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/httpx/_transports/default.py", line 60, in map_httpcore_exceptions
    yield
  File "/usr/local/lib/python3.9/site-packages/httpx/_transports/default.py", line 218, in handle_request
    resp = self._pool.handle_request(req)
  File "/usr/local/lib/python3.9/site-packages/httpcore/_sync/connection_pool.py", line 253, in handle_request
    raise exc
  File "/usr/local/lib/python3.9/site-packages/httpcore/_sync/connection_pool.py", line 237, in handle_request
    response = connection.handle_request(request)
  File "/usr/local/lib/python3.9/site-packages/httpcore/_sync/connection.py", line 86, in handle_request
    raise exc
  File "/usr/local/lib/python3.9/site-packages/httpcore/_sync/connection.py", line 63, in handle_request
    stream = self._connect(request)
  File "/usr/local/lib/python3.9/site-packages/httpcore/_sync/connection.py", line 111, in _connect
    stream = self._network_backend.connect_tcp(**kwargs)
  File "/usr/local/lib/python3.9/site-packages/httpcore/backends/sync.py", line 94, in connect_tcp
    sock = socket.create_connection(
  File "/usr/local/lib/python3.9/contextlib.py", line 137, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/usr/local/lib/python3.9/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
    raise to_exc(exc)
httpcore.ConnectError: [Errno 101] Network unreachable

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/NameSilo-DDNS/lib/current_ip.py", line 92, in fetch_v6
    r = self._http_client.get('http://test6.ustc.edu.cn/backend/getIP.php')
  File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 1045, in get
    return self.request(
  File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 821, in request
    return self.send(request, auth=auth, follow_redirects=follow_redirects)
  File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 908, in send
    response = self._send_handling_auth(
  File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 936, in _send_handling_auth
    response = self._send_handling_redirects(
  File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 973, in _send_handling_redirects
    response = self._send_single_request(request)
  File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 1009, in _send_single_request
    response = transport.handle_request(request)
  File "/usr/local/lib/python3.9/site-packages/httpx/_transports/default.py", line 218, in handle_request
    resp = self._pool.handle_request(req)
  File "/usr/local/lib/python3.9/contextlib.py", line 137, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/usr/local/lib/python3.9/site-packages/httpx/_transports/default.py", line 77, in map_httpcore_exceptions
    raise mapped_exc(message) from exc
httpx.ConnectError: [Errno 101] Network unreachable
2023-07-31 02:17:55,056 - CurrentIP.fetch_v6[line:109] - ERROR: 	error code: count=0
2023-07-31 02:17:58,788 - CurrentIP.fetch_v6[line:109] - ERROR: 	error code: count=1

docker部署后报错,同样的配置文件(只改了域名)在不同的机子上一个能运行另一个不行

我又来了(
在解决了IP问题后我的一台N5105安装winserver2022的机子能够正常运行,而另一台i3-10100T的win10专业版报错如下
两台机子均使用docker进行运行
2023-10-23 23:25:19,706 - DDNS.init[line:91] - INFO:

███╗ ██╗ █████╗ ███╗ ███╗ ███████╗ ███████╗ ██╗ ██╗ ██████╗ ██████╗ ██████╗ ███╗ ██╗ ███████╗
████╗ ██║ ██╔══██╗ ████╗ ████║ ██╔════╝ ██╔════╝ ██║ ██║ ██╔═══██╗ ██╔══██╗ ██╔══██╗ ████╗ ██║ ██╔════╝
██╔██╗ ██║ ███████║ ██╔████╔██║ █████╗ ███████╗ ██║ ██║ ██║ ██║ ██║ ██║ ██║ ██║ ██╔██╗ ██║ ███████╗
██║╚██╗██║ ██╔══██║ ██║╚██╔╝██║ ██╔══╝ ╚════██║ ██║ ██║ ██║ ██║ ██║ ██║ ██║ ██║ ██║╚██╗██║ ╚════██║
██║ ╚████║ ██║ ██║ ██║ ╚═╝ ██║ ███████╗ ███████║ ██║ ███████╗ ╚██████╔╝ ██████╔╝ ██████╔╝ ██║ ╚████║ ███████║
╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚══════╝ ╚═╝ ╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═══╝ ╚══════╝

2023-10-23 23:25:24,713 - NameSiloClient._list_dns_api[line:127] - ERROR: Error, process stopped. It could be due to the configuration file error, or the NameSilo server error.
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions
yield
File "/usr/local/lib/python3.9/site-packages/httpcore/_backends/sync.py", line 212, in connect_tcp
sock = socket.create_connection(
File "/usr/local/lib/python3.9/socket.py", line 823, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
File "/usr/local/lib/python3.9/socket.py", line 954, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -3] Try again

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/httpx/_transports/default.py", line 66, in map_httpcore_exceptions
yield
File "/usr/local/lib/python3.9/site-packages/httpx/_transports/default.py", line 228, in handle_request
resp = self._pool.handle_request(req)
File "/usr/local/lib/python3.9/site-packages/httpcore/_sync/connection_pool.py", line 262, in handle_request
raise exc
File "/usr/local/lib/python3.9/site-packages/httpcore/_sync/connection_pool.py", line 245, in handle_request
response = connection.handle_request(request)
File "/usr/local/lib/python3.9/site-packages/httpcore/_sync/connection.py", line 99, in handle_request
raise exc
File "/usr/local/lib/python3.9/site-packages/httpcore/_sync/connection.py", line 76, in handle_request
stream = self._connect(request)
File "/usr/local/lib/python3.9/site-packages/httpcore/_sync/connection.py", line 124, in _connect
stream = self._network_backend.connect_tcp(**kwargs)
File "/usr/local/lib/python3.9/site-packages/httpcore/_backends/sync.py", line 219, in connect_tcp
sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
File "/usr/local/lib/python3.9/contextlib.py", line 137, in exit
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.9/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
raise to_exc(exc) from exc
httpcore.ConnectError: [Errno -3] Try again

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/NameSilo-DDNS/ddns.py", line 247, in
main()
File "/home/NameSilo-DDNS/ddns.py", line 243, in main
ddns.start()
File "/home/NameSilo-DDNS/ddns.py", line 172, in start
self._namesilo_client.fetch_domains_info()
File "/home/NameSilo-DDNS/lib/namesilo_client.py", line 83, in fetch_domains_info
self._list_dns_api(domain, cache, t='A')
File "/home/NameSilo-DDNS/lib/namesilo_client.py", line 98, in _list_dns_api
ro = self._http_client.get(url)
File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 1041, in get
return self.request(
File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 814, in request
return self.send(request, auth=auth, follow_redirects=follow_redirects)
File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 901, in send
response = self._send_handling_auth(
File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 929, in _send_handling_auth
response = self._send_handling_redirects(
File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 966, in _send_handling_redirects
response = self._send_single_request(request)
File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 1002, in _send_single_request
response = transport.handle_request(request)
File "/usr/local/lib/python3.9/site-packages/httpx/_transports/default.py", line 228, in handle_request
resp = self._pool.handle_request(req)
File "/usr/local/lib/python3.9/contextlib.py", line 137, in exit
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.9/site-packages/httpx/_transports/default.py", line 83, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.ConnectError: [Errno -3] Try again

配置文件我是复制粘贴的,只进去改了个域名,请求大佬解惑,PS,报错的机器上IPV6有小问题(流量只进不出),但是我根本没配置IPV6域名

报错

2023-07-20 14:29:40,616 - CurrentIP.fetch[line:71] - ERROR: error code: count=2
2023-07-20 14:29:43,174 - CurrentIP.fetch[line:76] - INFO: current host ip: 222.205.75.76
2023-07-20 14:29:43,174 - DDNS.start[line:202] - ERROR: 'domain_ip'
Traceback (most recent call last):
File "/home/NameSilo-DDNS/ddns.py", line 186, in start
if (enable_ipv4 and not self._namesilo_client.ip_equal(current_ip)) or
File "/home/NameSilo-DDNS/lib/namesilo_client.py", line 198, in ip_equal
result = result & (ip == domain['domain_ip'])
KeyError: 'domain_ip'

Does not support domain with both A and AAAA records

When I have
"domains": [ "hpe.example.com" ], "domains_ipv6": [ "hpe.example.com" ],
Every time fetching the current record, only A record will be returned, which then caused the program to update the A record with an ipv6 address and yields

<?xml version="1.0"?>
<namesilo><request><operation>dnsUpdateRecord</operation><ip>73.4.114.xxx</ip></request><reply><code>280</code><detail>2601:180:8300:1df6:b12d:3410:b7c5:xxxx must be a valid ipv4</detail></reply></namesilo>```

help:how to fix "list_dns_api "error?

Snipaste_2022-09-03_15-32-55
docker环境,ddns镜像latest,namesilo的有3个域名,conf.json中的domain和key配置正确,且key为可读写。
重启ddns后出现上述错误,请问可能的原因是什么?

似乎是没有考虑同一个域名既有v4 (A)又有v6(AAAA) 解析的情况。

log:

2023-06-16 20:10:22,582 - NameSiloClient._list_dns_api[line:111] - INFO: 	'abc.abc.org' resolution ip: 111.XXX.XXX.XXX 
# 此处为abc.abc.org 的v4解析
2023-06-16 20:10:22,582 - NameSiloClient._list_dns_api[line:111] - INFO: 	'abc.abc.org' resolution ip: 111.XXX.XXX.XXX
# 此处应为abc.abc.org 的v6解析
2023-06-16 20:10:23,664 - NameSiloClient._update_dns_api[line:172] - ERROR: 	ip type and domain type do not match
<?xml version="1.0"?>
<namesilo><request><operation>dnsUpdateRecord</operation><ip>111.XXX.XXX.XXX</ip></request><reply><code>280</code><detail>2400:deed:beaf::1 must be a valid ipv4</detail></reply></namesilo>

有网络但一直提示Network unreachable

之前在树莓派上跑ddns一直能用,最近换了台电脑装的ubuntu22.04,docker部署,电脑双网口一个网口直连路由器,另一个网口共享给了另一台windows主机,能正常上网,curl了中科大的地址也能稳定返回ipv6地址,求助哪里出了问题。

2024-02-07 08:51:21,640 - DDNS.init[line:91] - INFO:

███╗ ██╗ █████╗ ███╗ ███╗ ███████╗ ███████╗ ██╗ ██╗ ██████╗ ██████╗ ██████╗ ███╗ ██╗ ███████╗
████╗ ██║ ██╔══██╗ ████╗ ████║ ██╔════╝ ██╔════╝ ██║ ██║ ██╔═══██╗ ██╔══██╗ ██╔══██╗ ████╗ ██║ ██╔════╝
██╔██╗ ██║ ███████║ ██╔████╔██║ █████╗ ███████╗ ██║ ██║ ██║ ██║ ██║ ██║ ██║ ██║ ██╔██╗ ██║ ███████╗
██║╚██╗██║ ██╔══██║ ██║╚██╔╝██║ ██╔══╝ ╚════██║ ██║ ██║ ██║ ██║ ██║ ██║ ██║ ██║ ██║╚██╗██║ ╚════██║
██║ ╚████║ ██║ ██║ ██║ ╚═╝ ██║ ███████╗ ███████║ ██║ ███████╗ ╚██████╔╝ ██████╔╝ ██████╔╝ ██║ ╚████║ ███████║
╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚══════╝ ╚═╝ ╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═══╝ ╚══════╝

2024-02-07 08:51:22,810 - httpx._send_single_request[line:1013] - INFO: HTTP Request: GET https://www.namesilo.com/api/dnsListRecords?version=1&type=xml&key=****&domain=***.top "HTTP/1.1 200 OK"
2024-02-07 08:51:22,813 - NameSiloClient._list_dns_api[line:122] - INFO: 'a0..top' resolution ip: ipv6 address
2024-02-07 08:51:22,814 - NameSiloClient._list_dns_api[line:122] - INFO: 'a1.
.top' resolution ip: ipv6 address
2024-02-07 08:51:22,815 - NameSiloClient._list_dns_api[line:122] - INFO: 'a2..top' resolution ip: ipv6 address
2024-02-07 08:51:22,815 - NameSiloClient._list_dns_api[line:122] - INFO: 'a3.
.top' resolution ip: ipv6 address
2024-02-07 08:51:22,816 - NameSiloClient._list_dns_api[line:122] - INFO: 'a4..top' resolution ip: ipv6 address
2024-02-07 08:51:22,816 - NameSiloClient._list_dns_api[line:122] - INFO: 'a5.
.top' resolution ip: ipv6 address
2024-02-07 08:51:22,817 - NameSiloClient._list_dns_api[line:122] - INFO: 'a6..top' resolution ip: ipv6 address
2024-02-07 08:51:22,817 - NameSiloClient._list_dns_api[line:122] - INFO: 'a7.
.top' resolution ip: ipv6 address
2024-02-07 08:51:22,900 - CurrentIP.fetch_v6[line:110] - ERROR: [Errno 101] Network unreachable
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions
yield
File "/usr/local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 212, in connect_tcp
sock = socket.create_connection(
File "/usr/local/lib/python3.10/socket.py", line 845, in create_connection
raise err
File "/usr/local/lib/python3.10/socket.py", line 833, in create_connection
sock.connect(sa)
OSError: [Errno 101] Network unreachable

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 66, in map_httpcore_exceptions
yield
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 228, in handle_request
resp = self._pool.handle_request(req)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 262, in handle_request
raise exc
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 245, in handle_request
response = connection.handle_request(request)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 99, in handle_request
raise exc
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 76, in handle_request
stream = self._connect(request)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 124, in _connect
stream = self._network_backend.connect_tcp(**kwargs)
File "/usr/local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 211, in connect_tcp
with map_exceptions(exc_map):
File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
raise to_exc(exc) from exc
httpcore.ConnectError: [Errno 101] Network unreachable

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/NameSilo-DDNS/lib/current_ip.py", line 95, in fetch_v6
r = self._http_client.get('http://test6.ustc.edu.cn/backend/getIP.php')
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1041, in get
return self.request(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 814, in request
return self.send(request, auth=auth, follow_redirects=follow_redirects)
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 901, in send
response = self._send_handling_auth(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 929, in _send_handling_auth
response = self._send_handling_redirects(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 966, in _send_handling_redirects
response = self._send_single_request(request)
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1002, in _send_single_request
response = transport.handle_request(request)
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 227, in handle_request
with map_httpcore_exceptions():
File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 83, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.ConnectError: [Errno 101] Network unreachable
2024-02-07 08:51:22,909 - CurrentIP.fetch_v6[line:112] - ERROR: error code: count=0
2024-02-07 08:51:23,710 - httpx._send_single_request[line:1013] - INFO: HTTP Request: GET https://api64.ipify.org?format=json "HTTP/1.1 200 OK"
2024-02-07 08:51:23,712 - CurrentIP.fetch_v6[line:112] - ERROR: error code: count=1
2024-02-07 08:51:53,833 - CurrentIP.fetch_v6[line:110] - ERROR: _ssl.c:990: The handshake operation timed out
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions
yield
File "/usr/local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 174, in start_tls
raise exc
File "/usr/local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 169, in start_tls
sock = ssl_context.wrap_socket(
File "/usr/local/lib/python3.10/ssl.py", line 513, in wrap_socket
return self.sslsocket_class._create(
File "/usr/local/lib/python3.10/ssl.py", line 1071, in _create
self.do_handshake()
File "/usr/local/lib/python3.10/ssl.py", line 1342, in do_handshake
self._sslobj.do_handshake()
TimeoutError: _ssl.c:990: The handshake operation timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 66, in map_httpcore_exceptions
yield
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 228, in handle_request
resp = self._pool.handle_request(req)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 262, in handle_request
raise exc
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 245, in handle_request
response = connection.handle_request(request)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 99, in handle_request
raise exc
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 76, in handle_request
stream = self._connect(request)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 156, in _connect
stream = stream.start_tls(**kwargs)
File "/usr/local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 158, in start_tls
with map_exceptions(exc_map):
File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
raise to_exc(exc) from exc
httpcore.ConnectTimeout: _ssl.c:990: The handshake operation timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/NameSilo-DDNS/lib/current_ip.py", line 103, in fetch_v6
r = self._http_client.get('https://ipv6.tsinghua.edu.cn/ip.php')
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1041, in get
return self.request(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 814, in request
return self.send(request, auth=auth, follow_redirects=follow_redirects)
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 901, in send
response = self._send_handling_auth(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 929, in _send_handling_auth
response = self._send_handling_redirects(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 966, in _send_handling_redirects
response = self._send_single_request(request)
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1002, in _send_single_request
response = transport.handle_request(request)
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 227, in handle_request
with map_httpcore_exceptions():
File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 83, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.ConnectTimeout: _ssl.c:990: The handshake operation timed out
2024-02-07 08:51:53,838 - CurrentIP.fetch_v6[line:112] - ERROR: error code: count=2
2024-02-07 08:51:53,839 - DDNS.start[line:202] - ERROR: current_ip.fetch error
Traceback (most recent call last):
File "/home/NameSilo-DDNS/ddns.py", line 184, in start
raise Exception('current_ip.fetch error')
Exception: current_ip.fetch error
2024-02-07 09:01:54,036 - CurrentIP.fetch_v6[line:110] - ERROR: [Errno 101] Network unreachable
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions
yield
File "/usr/local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 212, in connect_tcp
sock = socket.create_connection(
File "/usr/local/lib/python3.10/socket.py", line 845, in create_connection
raise err
File "/usr/local/lib/python3.10/socket.py", line 833, in create_connection
sock.connect(sa)
OSError: [Errno 101] Network unreachable

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 66, in map_httpcore_exceptions
yield
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 228, in handle_request
resp = self._pool.handle_request(req)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 262, in handle_request
raise exc
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 245, in handle_request
response = connection.handle_request(request)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 99, in handle_request
raise exc
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 76, in handle_request
stream = self._connect(request)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 124, in _connect
stream = self._network_backend.connect_tcp(**kwargs)
File "/usr/local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 211, in connect_tcp
with map_exceptions(exc_map):
File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
raise to_exc(exc) from exc
httpcore.ConnectError: [Errno 101] Network unreachable

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/NameSilo-DDNS/lib/current_ip.py", line 95, in fetch_v6
r = self._http_client.get('http://test6.ustc.edu.cn/backend/getIP.php')
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1041, in get
return self.request(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 814, in request
return self.send(request, auth=auth, follow_redirects=follow_redirects)
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 901, in send
response = self._send_handling_auth(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 929, in _send_handling_auth
response = self._send_handling_redirects(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 966, in _send_handling_redirects
response = self._send_single_request(request)
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1002, in _send_single_request
response = transport.handle_request(request)
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 227, in handle_request
with map_httpcore_exceptions():
File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 83, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.ConnectError: [Errno 101] Network unreachable
2024-02-07 09:01:54,039 - CurrentIP.fetch_v6[line:112] - ERROR: error code: count=0
2024-02-07 09:01:54,889 - httpx._send_single_request[line:1013] - INFO: HTTP Request: GET https://api64.ipify.org?format=json "HTTP/1.1 200 OK"
2024-02-07 09:01:54,891 - CurrentIP.fetch_v6[line:112] - ERROR: error code: count=1
2024-02-07 09:02:24,992 - CurrentIP.fetch_v6[line:110] - ERROR: _ssl.c:990: The handshake operation timed out
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions
yield
File "/usr/local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 174, in start_tls
raise exc
File "/usr/local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 169, in start_tls
sock = ssl_context.wrap_socket(
File "/usr/local/lib/python3.10/ssl.py", line 513, in wrap_socket
return self.sslsocket_class._create(
File "/usr/local/lib/python3.10/ssl.py", line 1071, in _create
self.do_handshake()
File "/usr/local/lib/python3.10/ssl.py", line 1342, in do_handshake
self._sslobj.do_handshake()
TimeoutError: _ssl.c:990: The handshake operation timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 66, in map_httpcore_exceptions
yield
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 228, in handle_request
resp = self._pool.handle_request(req)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 262, in handle_request
raise exc
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 245, in handle_request
response = connection.handle_request(request)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 99, in handle_request
raise exc
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 76, in handle_request
stream = self._connect(request)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 156, in _connect
stream = stream.start_tls(**kwargs)
File "/usr/local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 158, in start_tls
with map_exceptions(exc_map):
File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
raise to_exc(exc) from exc
httpcore.ConnectTimeout: _ssl.c:990: The handshake operation timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/NameSilo-DDNS/lib/current_ip.py", line 103, in fetch_v6
r = self._http_client.get('https://ipv6.tsinghua.edu.cn/ip.php')
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1041, in get
return self.request(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 814, in request
return self.send(request, auth=auth, follow_redirects=follow_redirects)
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 901, in send
response = self._send_handling_auth(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 929, in _send_handling_auth
response = self._send_handling_redirects(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 966, in _send_handling_redirects
response = self._send_single_request(request)
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1002, in _send_single_request
response = transport.handle_request(request)
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 227, in handle_request
with map_httpcore_exceptions():
File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 83, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.ConnectTimeout: _ssl.c:990: The handshake operation timed out
2024-02-07 09:02:24,994 - CurrentIP.fetch_v6[line:112] - ERROR: error code: count=2
2024-02-07 09:02:24,994 - DDNS.start[line:202] - ERROR: current_ip.fetch error
Traceback (most recent call last):
File "/home/NameSilo-DDNS/ddns.py", line 184, in start
raise Exception('current_ip.fetch error')
Exception: current_ip.fetch error
2024-02-07 09:12:25,097 - CurrentIP.fetch_v6[line:110] - ERROR: [Errno 101] Network unreachable
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions
yield
File "/usr/local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 212, in connect_tcp
sock = socket.create_connection(
File "/usr/local/lib/python3.10/socket.py", line 845, in create_connection
raise err
File "/usr/local/lib/python3.10/socket.py", line 833, in create_connection
sock.connect(sa)
OSError: [Errno 101] Network unreachable

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 66, in map_httpcore_exceptions
yield
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 228, in handle_request
resp = self._pool.handle_request(req)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 262, in handle_request
raise exc
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 245, in handle_request
response = connection.handle_request(request)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 99, in handle_request
raise exc
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 76, in handle_request
stream = self._connect(request)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 124, in _connect
stream = self._network_backend.connect_tcp(**kwargs)
File "/usr/local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 211, in connect_tcp
with map_exceptions(exc_map):
File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
raise to_exc(exc) from exc
httpcore.ConnectError: [Errno 101] Network unreachable

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/NameSilo-DDNS/lib/current_ip.py", line 95, in fetch_v6
r = self._http_client.get('http://test6.ustc.edu.cn/backend/getIP.php')
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1041, in get
return self.request(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 814, in request
return self.send(request, auth=auth, follow_redirects=follow_redirects)
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 901, in send
response = self._send_handling_auth(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 929, in _send_handling_auth
response = self._send_handling_redirects(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 966, in _send_handling_redirects
response = self._send_single_request(request)
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1002, in _send_single_request
response = transport.handle_request(request)
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 227, in handle_request
with map_httpcore_exceptions():
File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 83, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.ConnectError: [Errno 101] Network unreachable
2024-02-07 09:12:25,099 - CurrentIP.fetch_v6[line:112] - ERROR: error code: count=0
2024-02-07 09:12:25,949 - httpx._send_single_request[line:1013] - INFO: HTTP Request: GET https://api64.ipify.org?format=json "HTTP/1.1 200 OK"
2024-02-07 09:12:25,951 - CurrentIP.fetch_v6[line:112] - ERROR: error code: count=1
2024-02-07 09:12:30,960 - CurrentIP.fetch_v6[line:110] - ERROR: [Errno -3] Try again
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions
yield
File "/usr/local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 212, in connect_tcp
sock = socket.create_connection(
File "/usr/local/lib/python3.10/socket.py", line 824, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
File "/usr/local/lib/python3.10/socket.py", line 955, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -3] Try again

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 66, in map_httpcore_exceptions
yield
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 228, in handle_request
resp = self._pool.handle_request(req)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 262, in handle_request
raise exc
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 245, in handle_request
response = connection.handle_request(request)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 99, in handle_request
raise exc
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 76, in handle_request
stream = self._connect(request)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 124, in _connect
stream = self._network_backend.connect_tcp(**kwargs)
File "/usr/local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 211, in connect_tcp
with map_exceptions(exc_map):
File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
raise to_exc(exc) from exc
httpcore.ConnectError: [Errno -3] Try again

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/NameSilo-DDNS/lib/current_ip.py", line 103, in fetch_v6
r = self._http_client.get('https://ipv6.tsinghua.edu.cn/ip.php')
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1041, in get
return self.request(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 814, in request
return self.send(request, auth=auth, follow_redirects=follow_redirects)
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 901, in send
response = self._send_handling_auth(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 929, in _send_handling_auth
response = self._send_handling_redirects(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 966, in _send_handling_redirects
response = self._send_single_request(request)
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1002, in _send_single_request
response = transport.handle_request(request)
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 227, in handle_request
with map_httpcore_exceptions():
File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 83, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.ConnectError: [Errno -3] Try again
2024-02-07 09:12:30,964 - CurrentIP.fetch_v6[line:112] - ERROR: error code: count=2
2024-02-07 09:12:30,964 - DDNS.start[line:202] - ERROR: current_ip.fetch error
Traceback (most recent call last):
File "/home/NameSilo-DDNS/ddns.py", line 184, in start
raise Exception('current_ip.fetch error')
Exception: current_ip.fetch error
2024-02-07 09:22:31,088 - CurrentIP.fetch_v6[line:110] - ERROR: [Errno 101] Network unreachable
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions
yield
File "/usr/local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 212, in connect_tcp
sock = socket.create_connection(
File "/usr/local/lib/python3.10/socket.py", line 845, in create_connection
raise err
File "/usr/local/lib/python3.10/socket.py", line 833, in create_connection
sock.connect(sa)
OSError: [Errno 101] Network unreachable

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 66, in map_httpcore_exceptions
yield
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 228, in handle_request
resp = self._pool.handle_request(req)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 262, in handle_request
raise exc
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 245, in handle_request
response = connection.handle_request(request)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 99, in handle_request
raise exc
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 76, in handle_request
stream = self._connect(request)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 124, in _connect
stream = self._network_backend.connect_tcp(**kwargs)
File "/usr/local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 211, in connect_tcp
with map_exceptions(exc_map):
File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
raise to_exc(exc) from exc
httpcore.ConnectError: [Errno 101] Network unreachable

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/NameSilo-DDNS/lib/current_ip.py", line 95, in fetch_v6
r = self._http_client.get('http://test6.ustc.edu.cn/backend/getIP.php')
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1041, in get
return self.request(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 814, in request
return self.send(request, auth=auth, follow_redirects=follow_redirects)
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 901, in send
response = self._send_handling_auth(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 929, in _send_handling_auth
response = self._send_handling_redirects(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 966, in _send_handling_redirects
response = self._send_single_request(request)
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1002, in _send_single_request
response = transport.handle_request(request)
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 227, in handle_request
with map_httpcore_exceptions():
File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 83, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.ConnectError: [Errno 101] Network unreachable
2024-02-07 09:22:31,090 - CurrentIP.fetch_v6[line:112] - ERROR: error code: count=0
2024-02-07 09:22:32,101 - httpx._send_single_request[line:1013] - INFO: HTTP Request: GET https://api64.ipify.org?format=json "HTTP/1.1 200 OK"
2024-02-07 09:22:32,103 - CurrentIP.fetch_v6[line:112] - ERROR: error code: count=1
2024-02-07 09:23:02,197 - CurrentIP.fetch_v6[line:110] - ERROR: _ssl.c:990: The handshake operation timed out
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions
yield
File "/usr/local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 174, in start_tls
raise exc
File "/usr/local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 169, in start_tls
sock = ssl_context.wrap_socket(
File "/usr/local/lib/python3.10/ssl.py", line 513, in wrap_socket
return self.sslsocket_class._create(
File "/usr/local/lib/python3.10/ssl.py", line 1071, in _create
self.do_handshake()
File "/usr/local/lib/python3.10/ssl.py", line 1342, in do_handshake
self._sslobj.do_handshake()
TimeoutError: _ssl.c:990: The handshake operation timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 66, in map_httpcore_exceptions
yield
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 228, in handle_request
resp = self._pool.handle_request(req)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 262, in handle_request
raise exc
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 245, in handle_request
response = connection.handle_request(request)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 99, in handle_request
raise exc
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 76, in handle_request
stream = self._connect(request)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 156, in _connect
stream = stream.start_tls(**kwargs)
File "/usr/local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 158, in start_tls
with map_exceptions(exc_map):
File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
raise to_exc(exc) from exc
httpcore.ConnectTimeout: _ssl.c:990: The handshake operation timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/NameSilo-DDNS/lib/current_ip.py", line 103, in fetch_v6
r = self._http_client.get('https://ipv6.tsinghua.edu.cn/ip.php')
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1041, in get
return self.request(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 814, in request
return self.send(request, auth=auth, follow_redirects=follow_redirects)
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 901, in send
response = self._send_handling_auth(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 929, in _send_handling_auth
response = self._send_handling_redirects(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 966, in _send_handling_redirects
response = self._send_single_request(request)
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1002, in _send_single_request
response = transport.handle_request(request)
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 227, in handle_request
with map_httpcore_exceptions():
File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 83, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.ConnectTimeout: _ssl.c:990: The handshake operation timed out
2024-02-07 09:23:02,201 - CurrentIP.fetch_v6[line:112] - ERROR: error code: count=2
2024-02-07 09:23:02,202 - DDNS.start[line:202] - ERROR: current_ip.fetch error
Traceback (most recent call last):
File "/home/NameSilo-DDNS/ddns.py", line 184, in start
raise Exception('current_ip.fetch error')
Exception: current_ip.fetch error
2024-02-07 09:33:07,332 - CurrentIP.fetch_v6[line:110] - ERROR: [Errno -3] Try again
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions
yield
File "/usr/local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 212, in connect_tcp
sock = socket.create_connection(
File "/usr/local/lib/python3.10/socket.py", line 824, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
File "/usr/local/lib/python3.10/socket.py", line 955, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -3] Try again

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 66, in map_httpcore_exceptions
yield
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 228, in handle_request
resp = self._pool.handle_request(req)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 262, in handle_request
raise exc
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 245, in handle_request
response = connection.handle_request(request)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 99, in handle_request
raise exc
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 76, in handle_request
stream = self._connect(request)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 124, in _connect
stream = self._network_backend.connect_tcp(**kwargs)
File "/usr/local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 211, in connect_tcp
with map_exceptions(exc_map):
File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
raise to_exc(exc) from exc
httpcore.ConnectError: [Errno -3] Try again

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/NameSilo-DDNS/lib/current_ip.py", line 95, in fetch_v6
r = self._http_client.get('http://test6.ustc.edu.cn/backend/getIP.php')
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1041, in get
return self.request(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 814, in request
return self.send(request, auth=auth, follow_redirects=follow_redirects)
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 901, in send
response = self._send_handling_auth(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 929, in _send_handling_auth
response = self._send_handling_redirects(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 966, in _send_handling_redirects
response = self._send_single_request(request)
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1002, in _send_single_request
response = transport.handle_request(request)
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 227, in handle_request
with map_httpcore_exceptions():
File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 83, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.ConnectError: [Errno -3] Try again
2024-02-07 09:33:07,336 - CurrentIP.fetch_v6[line:112] - ERROR: error code: count=0
2024-02-07 09:33:08,158 - httpx._send_single_request[line:1013] - INFO: HTTP Request: GET https://api64.ipify.org?format=json "HTTP/1.1 200 OK"
2024-02-07 09:33:08,160 - CurrentIP.fetch_v6[line:112] - ERROR: error code: count=1
2024-02-07 09:33:38,266 - CurrentIP.fetch_v6[line:110] - ERROR: _ssl.c:990: The handshake operation timed out
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions
yield
File "/usr/local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 174, in start_tls
raise exc
File "/usr/local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 169, in start_tls
sock = ssl_context.wrap_socket(
File "/usr/local/lib/python3.10/ssl.py", line 513, in wrap_socket
return self.sslsocket_class._create(
File "/usr/local/lib/python3.10/ssl.py", line 1071, in _create
self.do_handshake()
File "/usr/local/lib/python3.10/ssl.py", line 1342, in do_handshake
self._sslobj.do_handshake()
TimeoutError: _ssl.c:990: The handshake operation timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 66, in map_httpcore_exceptions
yield
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 228, in handle_request
resp = self._pool.handle_request(req)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 262, in handle_request
raise exc
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 245, in handle_request
response = connection.handle_request(request)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 99, in handle_request
raise exc
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 76, in handle_request
stream = self._connect(request)
File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 156, in _connect
stream = stream.start_tls(**kwargs)
File "/usr/local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 158, in start_tls
with map_exceptions(exc_map):
File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
raise to_exc(exc) from exc
httpcore.ConnectTimeout: _ssl.c:990: The handshake operation timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/NameSilo-DDNS/lib/current_ip.py", line 103, in fetch_v6
r = self._http_client.get('https://ipv6.tsinghua.edu.cn/ip.php')
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1041, in get
return self.request(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 814, in request
return self.send(request, auth=auth, follow_redirects=follow_redirects)
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 901, in send
response = self._send_handling_auth(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 929, in _send_handling_auth
response = self._send_handling_redirects(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 966, in _send_handling_redirects
response = self._send_single_request(request)
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1002, in _send_single_request
response = transport.handle_request(request)
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 227, in handle_request
with map_httpcore_exceptions():
File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 83, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.ConnectTimeout: _ssl.c:990: The handshake operation timed out
2024-02-07 09:33:38,270 - CurrentIP.fetch_v6[line:112] - ERROR: error code: count=2
2024-02-07 09:33:38,271 - DDNS.start[line:202] - ERROR: current_ip.fetch error
Traceback (most recent call last):
File "/home/NameSilo-DDNS/ddns.py", line 184, in start
raise Exception('current_ip.fetch error')
Exception: current_ip.fetch error

只比较启动docker时解析到的dns ip值和当前ip是不足够的

当手动修改dns记录后,除非重启容器,否则程序只判断当前ip和内存中的dns解析ip是否相同,是无法保证10分钟的循环每次都能可以正确更新dns 记录的。
正确的逻辑应该是每隔10分钟,解析当前ip的同时,也解析远程的dns记录,并和当前公网ip比较,不相同就更新;而不是只判断当前ip是否变动
要知道,一般服务器都是常年运行的,而如果指使用容器启动时解析到的dns记录,随着时间推移,这个ip很可能早就过期了(原因很多,比如自己手动修改记录、申请ssl时添加txt记录不小心修改了dns记录、做其它测试等都会导致dns记录被更改),而程序依旧使用老掉牙的启动时解析到的ip来比较,不知道这样设计初衷是啥,难道服务器会在乎省下来这一点点的可以忽略不计的计算机资源吗?

Error 280

最近更新了以后 运行一段时间 namesilo会返回一个报错,重启容器后就好了。之前版本的(域名还不是一个list的版本)一直不会报错。

<?xml version="1.0"?>
<namesilo><request><operation>dnsUpdateRecord</operation><ip>xxx.xxx.xxx.xxx</ip></request><reply><code>280</code><detail>record_id missing or invalid</detail></reply></namesilo>

运行py文件时出现No module named 'lib.current_ip'

在群晖中安装了python3,也安装了httpx,但是在执行py文件时出现:
Traceback (most recent call last):
File "ddns.py", line 14, in
from lib.current_ip import CurrentIP
ModuleNotFoundError: No module named 'lib.current_ip'

随机出现SSL错误导致程序卡住

目前我的解决方法是把**./NameSilo-DDNS/DDNS restart**做成定时任务
经常在日志中会各种出现SSL出错情况,类似

Traceback (most recent call last):
  File "ddns.py", line 100, in __init__
    r = httpx.get("https://www.ip138.com/", headers=self.httpHeaders, timeout=10)
  File "/usr/local/lib/python3.8/dist-packages/httpx/_api.py", line 189, in get
    return request(
  File "/usr/local/lib/python3.8/dist-packages/httpx/_api.py", line 100, in request
    return client.request(
  File "/usr/local/lib/python3.8/dist-packages/httpx/_client.py", line 802, in request
    return self.send(request, auth=auth, follow_redirects=follow_redirects)
  File "/usr/local/lib/python3.8/dist-packages/httpx/_client.py", line 889, in send
    response = self._send_handling_auth(
  File "/usr/local/lib/python3.8/dist-packages/httpx/_client.py", line 917, in _send_handling_auth
    response = self._send_handling_redirects(
  File "/usr/local/lib/python3.8/dist-packages/httpx/_client.py", line 954, in _send_handling_redirects
    response = self._send_single_request(request)
  File "/usr/local/lib/python3.8/dist-packages/httpx/_client.py", line 990, in _send_single_request
    response = transport.handle_request(request)
  File "/usr/local/lib/python3.8/dist-packages/httpx/_transports/default.py", line 218, in handle_request
    resp = self._pool.handle_request(req)
  File "/usr/lib/python3.8/contextlib.py", line 131, in __exit__
    self.gen.throw(type, value, traceback)
  File "/usr/local/lib/python3.8/dist-packages/httpx/_transports/default.py", line 77, in map_httpcore_exceptions
    raise mapped_exc(message) from exc
httpx.ConnectError: EOF occurred in violation of protocol (_ssl.c:1131)

运行一段时间总是会报错,IP更新不了,不知是什么原因引起的

Traceback (most recent call last):
File "/home/NameSilo-DDNS/lib/current_ip.py", line 40, in fetch
r = self._http_client.get('https://api-v3.speedtest.cn/ip')
File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 1039, in get
return self.request(
File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 815, in request
return self.send(request, auth=auth, follow_redirects=follow_redirects)
File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 902, in send
response = self._send_handling_auth(
File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 930, in _send_handling_auth
response = self._send_handling_redirects(
File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 967, in _send_handling_redirects
response = self._send_single_request(request)
File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 1003, in _send_single_request
response = transport.handle_request(request)
File "/usr/local/lib/python3.9/site-packages/httpx/_transports/default.py", line 218, in handle_request
resp = self._pool.handle_request(req)
File "/usr/local/lib/python3.9/contextlib.py", line 137, in exit
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.9/site-packages/httpx/_transports/default.py", line 77, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.ConnectError: [Errno 104] Connection reset by peer

考虑出一个dockerfile么

docker会方便很多,开机启动也不用systemctrl那一套了,部署在家里服务器上,服务器来电自启,开机自动连接

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.