动态更新CloudFlare“A”记录的DDNS服务

pyCloudFlareUpdater的Python项目详细描述


CloudFlare“A”记录更新程序

ddns服务,用于在公共IP更改时动态更新CloudFlare“A”记录

PyPiZIPGITDownloads

索引

  1. Purpose
  2. Installation
  3. Usage
  4. License

目的

作为recently created pyGoDaddyUpdater的延续, 这里有cloudflare更新程序。此组旨在创建ddns可用于 具有最常见DNS提供程序的用户/系统管理员。

如果您是一个cloudflare用户(您有自己的域、cnames等),可能您已经注意到没有dynamic dnsddns)更新服务,因此您必须手动将public ip放在域“a”记录中 变化。

因此,存在其他可能的情况,如^ {EM1}$,具有无IP域< EEM >,并使所有的CAMP指向DNS, 启用从源域(例如example.com)重定向到www域(例如:www.example.com)的功能。

使用这个脚本/服务,您可以配置一个daemon它将在后台运行,定期检查 为了你的公共IP看看它是否已经改变。如果还需要,可以将其配置为只运行一次。

安装

注意:此脚本仅在使用python 3及更高版本的系统上运行

安装此脚本有两种可能:

1.使用setup.py

从克隆这个存储库开始。为此,你需要 Git已安装。然后,在git bash上运行:

git clone https://gitlab.javinator9889.com/ddns-clients/pyCloudFlareUpdater.git

还有另一种可能性,因此您可以直接下载包含所有必要数据的压缩文件。打开拉链 然后继续下面的步骤。

安装时,您需要administrator权限,因为脚本正在创建一个新命令,以便您可以运行 到处都有:

cd pyCloudFlareUpdater
sudo python3 setup.py install

2.使用pip(更简单、更快)

我假设你有pip installed,所以对于使用这个包:

sudo pip install pyCloudFlareUpdater
# If you have any error saying that at least Python 3 is needed
# try with the following one:
sudo pip3 install pyCloudFlareUpdater

使用量

首先,转到cloudflare用户帐户选项,并找到部分(通常在页面底部) 上面写着api键

获取global api密钥并将其保存在一个安全的位置,我们稍后将使用它。

API Keys


安装脚本后,执行过程很简单(从命令行):

$ cloudflare_ddns [OPTIONS]

可用选项有:

  • --domain DOMAIN:指定将更新哪个域。也就是说,如果您的站点位于www.example.com,那么 域是example.com

  • --name NAME:这里必须包含“a”记录名。在大多数情况下,此名称通常与域匹配。

  • --time TIME:更改update check interval时间(分钟)。默认情况下,是5分钟。

  • --key KEY:如前所述获得的cloudflare key

  • --mail MAIL:用于登录帐户的cloudflare mail

  • --proxied:使用此选项首先对您的网站access发出所有请求 与启用此选项Cloudflare proxy相同。

  • --no_daemonize:包括这个选项,以便只运行一次这个脚本

  • --pid PID FILE:定义您自己的pid文件,其中将保存正在运行的守护进程pid。默认情况下,它是: /var/run/cloudflare.pid

  • --log LOG FILE:定义您自己的日志文件,其中将保存正在运行的守护进程日志。默认情况下,它是: /var/log/cloudflare.log

  • --preferences PREFERENCES FILE:如果计划同时动态更新多个域 时间,您可以定义一个自定义首选项文件(如果不是,则每个tim运行守护进程时,它将被覆盖)。

  • --user USERNAME:如果出于任何原因,您需要以另一个用户身份运行此脚本(例如,由于 保存日志和PID文件的权限),包括用户名(必须以管理员身份运行脚本)。

  • --group GROUP NAME:如果出于任何原因需要将此脚本作为另一个组运行(例如,由于 保存日志和PID文件的权限),包括用户名(必须以管理员身份运行脚本)。

第一次执行此脚本(或定义新的首选项文件)时,必须包括(仅第一次):

  • 领域。
  • 名字。
  • 钥匙。
  • 邮件。
  • 署名。

然后,每次在没有extra argumentsproviding the preferences file的情况下执行脚本时,您将不需要 包括上述选项。

许可证

                             pyCloudFlareUpdater
                  Copyright (C) 2019 - Javinator9889

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
      the Free Software Foundation, either version 3 of the License, or
                   (at your option) any later version.

       This program is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
               GNU General Public License for more details.

     You should have received a copy of the GNU General Public License
    along with this program. If not, see <http://www.gnu.org/licenses/>.

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JNLP无法在浏览器中正确启动(与dtjava.js一起部署)   在执行下一个方法之前,java将等待线程执行结束   java如何将另一个LayoutManager应用于JComboBox?(多栏JComboBox尝试)   使用jPBC在java中实现双线性配对   java在使用@RequestMapping注释时获取请求的值(URL)   java如何控制流量   java如何获取IFC对象的绝对坐标?   java目标服务器无法使用htmlunit和tor响应异常   java需要帮助创建一个循环结构来运行我的程序   java有可能拥有一个Android APK并在应用程序中更改构建变体吗?   在Sphinx4中运行Ant的java   Java:从ArrayList获取子列表的有效方法   java如何使在循环内部创建的数组在循环外部工作?   apache poi通过java中的XSSF表从单元格读取日期值   安卓 java自己的SeqLock实现,避免spinlock会更好吗?   java的并发底层方法。util。同时发生的预定未来   java比较方法违反了它的一般约定,如何使它具有可传递性?   使用JAVA定向指定类的DB导出子类   一个方法中的java更改特定imageView