CloudFlare v4 API的Python包装器

python-cloudflare3的Python项目详细描述


巨蟒云闪3
================= < BR>
安装
---- < BR>
提供了两种安装此软件的方法。使用pypi(请参见
`包<;https://pypi.python.org/pypi/cloudflare>;``详细信息)或github
(请参见"package<;https://github.com/cloudflare/python cloudflare>;"`_
详细信息)。 < BR>
通过PYPI
~~~~~~~~ < BR>
代码:BASH < BR>
$sudo pip安装python-cloudflare3
$ < BR>
是的-很简单!(在某些情况下可能不需要sudo)。 < BR>
通过Github
~~~~~~~~~~ < BR>
代码:BASH < BR>
$git克隆https://github.com/dmyerscough/python-cloudflare
$cd python cloudflare软件
$./setup.py生成
$sudo./setup.py安装
$ < BR>
或您想使用的任何方差。 < BR>
CloudFlare API版本4
-- < BR>
cloudflare api可以在这里找到,https://api.cloudflare.com/>;`。
每个api调用都是通过
*CloudFlare*类。下面提供了完整的列表。 < BR>
开始
------ < BR>
一个非常简单的帐户区域列表;包括ipv6
区域的状态。 < BR>
代码::python < BR>
导入CloudFlare < BR>
def main():
cf=cloudflare.cloudflare()
zones=cf.zones.get(params={'每页':50})
对于区域中的区域:
区域名称=区域["名称"]
区域id=zone['id']
设置ipv6=cf.zones.settings.ipv6.get(区域id)
ipv6_status=settings_ipv6['value']
设置SSL=cf.zones.settings.ssl.get(区域ID)
ssl_status=settings_ssl['value']
打印区域ID、SSL状态、IPv6状态、区域名称 < BR>
如果uuu name_uuuuu='\uuu main_uuu':
主() < BR>
下面是一个更复杂的例子。 < BR>
代码::python < BR>
导入系统
导入CloudFlare < BR>
def main():
区域名称='example.com' < BR>
cf=cloudflare.cloudflare() < BR>
查询区域名称,只希望返回一个值
尝试:
zones=cf.zones.get(params={'name':区域名,'每页':1})
除了cloudflare.cloudflare皮尔罗:
退出('/zones.get%d%s-API调用失败"%(e,e))
除了e:
退出('/zones.get-%s-api调用失败"%(e)) < BR>
提取处理该区域所需的区域id
区域=区域[0]
区域id=zone['id'] < BR>
从该区域请求DNS记录
尝试:
dns_records=cf.zones.dns_records.get(区域id)
除了cloudflare.cloudflare皮尔罗:
退出('/zones/dns_records.get%d%s-API调用失败"%(e,e)) < BR>
打印结果-首先打印区域名称
打印区域id,区域名称 < BR>
然后该区域的所有DNS记录
对于dns_记录中的dns_记录:
r_name=dns_record['name']
r_type=dns_record['type']
r_value=dns_record['content']
r_id=dns_记录['id']
打印'\t',r\u id,r\u name,r\u type,r\u value < BR>
退出(0) < BR>
如果uuu name_uuuuu='\uuu main_uuu':
主() < BR>
提供CloudFlare用户名和API密钥
--- < BR>
创建*cloudflare*类时,最多可以传递三个
参数。 < BR>
-帐户电子邮件
-帐户API密钥
-可选调试标志(真/假) < BR>
如果在创建
类,然后从任一用户检索它们导出外壳
环境变量或.cloudflare.cfg或~/.cloudflare.cfg或
~/.cloudflare/cloudflare.cfg文件,按顺序排列。 < BR>
有一个电话目前不需要任何电子邮件或令牌
认证(即*/ips*调用);因此您可以在没有任何值的情况下进行测试
已保存。 < BR>
使用shell环境变量
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ < BR>
代码:BASH < BR>
$export cf_api_email='user@example.com'
$export cf_api_key='00000000000000000000000000000000'
$export cf_api_certkey='v1.0-…' $BR/>< BR>
使用配置文件存储电子邮件和密钥
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ < BR>
代码:BASH < BR>
$cat~/.cloudflare/cloudflare.cfg
[云耀斑]
电子邮件=user@example.com
令牌=00000000000000000000000000000000
certoken=v1.0-… $BR/>< BR>
原始CA使用*cf\\u api\\u certKey*或*certToken*值
*/certificates*API调用。 < BR>
包括示例代码
---- < BR>
examples*文件夹包含许多简单和详细的示例
格式。 < BR>
DNS区域代码示例
- < BR>
代码::python < BR>< BR>/usr/bin/env巨蟒 < BR>
导入系统
导入CloudFlare < BR>
def main():
区域名称=系统参数[1]
cf=cloudflare.cloudflare()
区域信息=cf.zones.post(data={'jump_start':false,'name':区域名称})
区域id=区域信息['id'] < BR>
DNS U记录=[
{'name':'foo','type':'aaaa','content':'2001:d8b::1'},
{'name':'foo','type':'a','content':'192.168.0.1'},
{'name':'duh','type':'a','content':'10.0.0.1','ttl':120},
{'name':'bar','type':'cname','content':'foo'},
{'name':'shakespeare','type':'txt','content':"名字里有什么?我们称之为玫瑰的任何其他名字…
< BR>
对于dns_记录中的dns_记录:
r=cf.zones.dns_records.post(区域id,data=dns_record)
退出(0) < BR>
如果uuu name_uuuuu='\uuu main_uuu':
主() < BR> CL/CLI < BR>< BR>
所有api调用都可以从命令行调用。命令会
即时将域名转换为区域标识符。 < BR>
代码:BASH < BR>
$cli4[-h--帮助][-v--详细][-q--安静][--获取--修补程序--发布--放置--删除][项=值…]/command… < BR>
对于需要传递一组日期或参数的api调用,有一个
item=值格式。如果您希望传递一个数值,那么*==*可以是
用于强制将该值视为数值。 < BR>
cli命令的输出是json格式的(并且可读)。 < BR>
简单的cli示例
~~~~~~~~~~~~~~~~~~~ < BR>
-``CLI4/用户/帐单/个人资料``
-`` cli4/用户/邀请`` < BR>
-``cli4/zones/:example.com``
-``cli4/zones/:example.com/dnssec``
-``cli4/zones/:example.com/settings/ipv6``
-``cli4--put/zones/:example.com/activation\u check``
-``cli4/zones/:example.com/keyless\u证书`` < BR>
-``cli4/zones/:example.com/analytics/dashboard`` < BR>
更复杂的cli示例
~~~~~~~~~~~~~~~~~~~~~~~~~ < BR>
下面是dns项的创建,然后是该项的列表
然后删除该条目。 < BR>
代码:BASH < BR>
$$cli4--post name="test"type="a"content="10.0.0.1"/zones/:example.com/dns_记录
{
"id":"94e028933c87b4bf3c70a42e6daac4f",
"name":"test.example.com",
"type":"a",
"content":"10.0.0.1",

$BR/>< BR>
$cli4/zones/:example.com/dns\u records/:test.example.com jq'{"id":.id,"name":.name,"type":.type,"content":.content}'
{
"id":"94e028933c87b4bf3c70a42e6daac4f",
"name":"test.example.com",
"type":"a",
"内容":"10.0.0.1"
< BR>
$cli4—删除/zones/:example.com/dns_records/:test.example.com jq-c。
{"id":"94e028933c87b4bf3c70a42e6daac4f"} $BR/>< BR>
可以处理具有多个值的dns条目。这个
在命令中生成多个api调用。 < BR>
: < BR>
$cli4/zones/:example.com/dns廑records/:test.example.com jq-c.[]{"id":.id,"name":.name,"type":.type,"content":.content}
{"id":"bca0c4a5e3691e62841627e4dc3a19ed","name":"test.example.com","type":"a","content":"192.168.0.1"}
{"id":"d94f788e6bf72ba2a54145ad04b34f08","name":"test.example.com","type":"aaaa","content":"2001:d8b::1"} $BR/>< BR>
以下是缓存清除命令。 < BR>
代码:BASH < BR>
$cli4——删除purge_everything=true/zones/:example.com/purge_cache jq-c。
{"id":"d8afaec3dd2b7f8c1b470e594a21a01d"} $BR/>< BR>
$cli4--delete files='[http://example.com/css/styles.css]'/zones/:example.com/purge jq-c。
{"id":"d8afaec3dd2b7f8c1b470e594a21a01d"} $BR/>< BR>
$cli4--delete files='[http://example.com/css/styles.css,http://example.com/js/script.js]'/zones/:example.com/purge_u cache jq-c。
{"id":"d8afaec3dd2b7f8c1b470e594a21a01d"} $BR/>< BR>
$cli4--delete tags='[tag1,tag2,tag3]'/zones/:example.com/purge_u cache jq-c。
cli4:/zones/:example.com/purge_cache-1107只有企业区域可以按标记清除。 $BR/>< BR>
特定区域可用计划的有用列表。 < BR>
代码:BASH < BR>
$cli4/zones/:example.com/available_u plans jq-c.[]{"id":.id,"name":.name}
{"id":"a577b510288e82b26486fd1df47000ec","name":"pro website"}
{"id":"1ac039f6c29b691475c3d74fe588d1ae","name":"商业网站"}
{"id":"94f3b7b768b0458b56d2ca4fe5ec0f9","name":"企业网站"}
{"id":"0feeeeeeeeeeeeeeeeeeeeeeeee","name":"免费网站"} $BR/>< BR>
dnssec cli示例
~~~~~~~~~~~~~~~~~~~ < BR>
代码:BASH < BR>
$cli4/zones/:example.com/dnssec jq-c'{"status":.status}
{"status":"disabled"} $BR/>< BR>
$cli4--patch status=active/zones/:example.com/dnssec jq-c'{"status":.status}
{"状态":"挂起"} $BR/>< BR>
$cli4/zones/:example.com/dnssec
{
"算法":"13",
"摘要":"41600621C65065B09230EBC9556CED937EB7FD86E31635D0025326CCF09A7194",
"摘要算法":"sha256",
"摘要类型":"2",
"ds":"example.com.DS 2371 13 2 41600621C65065B09230EBC9556CED937EB7FD86E31635D0025326CCF09A7194中的3600",
"标志":257,
"钥匙标签":2371,
"密钥类型":"ecdsap256sha256",
"修改时间":"2016-05-01t22:42:15.591158Z",
"公共密钥":"MDSSWUYR3DPW132MOI8V9XESWE8JTO0DXCJJNOPKL+GQJXPVXCKHAEF+KKXLBXILFDLUT0RAK9IUZYL53EKGQ=",
"状态":"挂起"
$BR/>< BR>
实现的api调用
---- < BR>
+————————————————————————————————————————————————————————————————————————————---+
|
+===========+===========+============+=============+==============+===============================================================+
|
+——————————————————————————————————————————————————————————————————————————--———————————————————————————————-+
``获取`/ips|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
``补丁`/organizations/:标识符/邀请|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
``获取`/organizations/:标识符/railguns/:标识符/区域|
+————————————————————————————————————————————————————————————————————————————---+
``get`/organizations/:标识符/角色|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
``获取`/railguns/:标识符/区域|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
``获取`/user/billing/history|
+————————————————————————————————————————————————————————————————————————————---+
``获取`/user/billing/profileγ
+————————————————————————————————————————————————————————————————————————————---+
``获取`/user/billing/subscriptions/apps|
+————————————————————————————————————————————————————————————————————————————---+
``获取`/user/billing/subscriptions/zones|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
``放置`/zones/:标识符/激活检查|
+————————————————————————————————————————————————————————————————————————————---+
``获取`/zones/:标识符/分析/巨像|
+————————————————————————————————————————————————————————————————————————————---+
``获取`/zones/:标识符/分析/仪表板|
+————————————————————————————————————————————————————————————————————————————---+
``获取`/zones/:标识符/可用计划|
+————————————————————————————————————————————————————————————————————————————---+
``放置`/zones/:标识符/自定义证书/优先级|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
``获取``|``放置````post``````````delete`````zones/:identifier/dns\记录|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
``删除`/zones/:标识符/清除缓存|
+————————————————————————————————————————————————————————————————————————————---+
``获取`/zones/:标识符/railguns/:标识符/diagnose|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
``获取`/zones/:标识符/设置/高级DDoS|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+——————————————————————————————————————————————————————————————-——————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
``获取` ` `修补`/zones/:标识符/设置/ipv6|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
``获取` ` `补丁`/zONES/:标识符/设置/火箭加载器|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
``获取` ` `补丁`/zones/:标识符/设置/ssl|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+
|
+————————————————————————————————————————————————————————————————————————————---+ < BR>
手动添加额外的api调用
- < BR>
可以通过配置文件添加额外的api调用 < BR>
代码:BASH < BR>
$cat~/.cloudflare/cloudflare.cfg
[云耀斑]
额外费用=
/客户端/v4/命令
/client/v4/command/:命令标识符
/client/v4/command/:命令标识符/设置 $BR/>< BR>
虽然在cloudflare的api中调用任何东西都很容易,但不是很容易
在这里添加项很有用,因为它们只会返回api url错误。
从技术上讲,这只适用于CloudFlare内部测试。 < BR> 问题/问题
< BR>
以下错误可能是由于过期的ssl/tls库引起的
和/或过时的python。 < BR>
: < BR>
/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/util/ssl-py:318:snimissingwarning:已发出https请求,但tls的sni(使用者名称指示)扩展在此平台上不可用。这可能会导致服务器提供不正确的TLS证书,从而导致验证失败。您可以升级到较新版本的python来解决这个问题。有关详细信息,请参阅https://urllib3.readthedocs.org/en/latest/security.html snimissingwarning。 < BR>狙击警告
/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/util/ssl-py:122:不安全平台警告:真正的sslcontext对象不可用。这会阻止urllib3正确配置ssl,并可能导致某些ssl连接失败。您可以升级到较新版本的python来解决这个问题。有关详细信息,请参阅https://urllib3.readthedocs.org/en/latest/security.html不安全平台警告。
不安全平台警告 < BR>
可以找到解决方案
`这里<;https://urllib3.readthedocs.org/en/latest/security.html不安全平台警告>;'`_ < >和/或
`here<;http://stackoverflow.com/questions/35144550/how to install cryptography on ubuntu>;``这里是http://stackoverflow.com/questions/35144550/how to install cryptography on ubuntu。 < BR> 信用证
< BR>
这是基于"Felix Wong"的作品
(gnowxilef)<;https://github.com/gnowxilef>;找到
`这里<;https://github.com/cloudflare api/python-cloudflare-v4>;`。它
已经得到了认真的扩展。 < BR>
版权
--- < BR>
部分版权所有'Felix Wong
(gnowxilef)<;https://github.com/gnowxilef>;`\uuu2015和cloudflare 2016。

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

推荐PyPI第三方库


热门话题
在IE10中重新加载另一个帧时,internet explorer Java小程序失败/消失   ThreadLocal变量的java性能   java系统。出来println不是打印输出   java从JAXB类获取元素属性   java组织。天啊。科尔巴。包裹。InvalidName:IDL:omg。org/CORBA/ORB/InvalidName:1.0   java有没有办法让非事务连接抛出异常?   java是否有任何方法可以使用JdbcTemplate和查询/条件Fluent API   javajpa级联类型。刷新不工作?   未考虑java Maven依赖关系管理   java MySQL MBR包含抛出MySQLExceptionError的语句   java验证整数并将其设为5位数   java发现了循环依赖的问题   java Hibernate left join fetch到使用@ManyToMany关联映射的softdeleted实体生成无效查询?   JavaH:commandButton多个操作:下载文件并呈现ajax表   Google Contacts API在Java、C#、Python或Ruby中是否有一个Hello World示例?