openbluapi的官方python3包装器
openblu的Python项目详细描述
OpenBlu Python包装
围绕openbluapi的官方Python包装器
概述
这个包装器可用于从openbluapi获取服务器并检索它们的OpenVPN配置。在
为了简化操作,库从API中抽象出三个对象中的JSON响应:
Server
->;包含来自服务器的更详细信息,如OpenBlu's Documentation中所述ServerListing
->;包含来自服务器的元数据,如ping、国家/地区和位置OpenVPN
->;包含在Server
对象中,存储服务器的OpenVPN配置
可以打印ServerListing
和Server
对象,以获得服务器信息的概述。在
安装
要安装这个包装器,只需使用git clone
克隆这个repo,然后运行python3 setup.py install
使用
获取多个服务器
要获取多个服务器,而不使用它们的OpenVPN配置,可以使用openblu.OpenBluAPI
类的list_servers()
方法,如下所示
fromopenbluimportOpenBluAPIapi=OpenBluAPI('access_key')# Get your access key at openblu.intellivoid.netservers=api.list_servers(filter_by=("germany","country"))
下面是Sphinx格式的list_servers
方法的完整文档
获取单个服务器
如OpenBlu文档中所述,服务器可以通过一个唯一的ID来标识。这个ID可以用于从OpenBlu API获取包含OpenVPN服务器配置的更详细的服务器对象,如下所示。 此服务器对象还包含服务器的IP地址
fromopenbluimportOpenBluAPIapi=OpenBluAPI('access_key')# Get your access key at openblu.intellivoid.netservers=api.list_servers(filter_by=("germany","country"))server=servers[0]# Take the first entrysrv=api.get_server(server.id)# Retrieve the server's configuration
下面是Sphinx格式的get_server
方法的完整文档
Fetches a single OpenVPN server from the OpenBlu API, given its unique ID
:param uuid: The unique ID of the desired server
:type uuid: string
:param verbose: If ``True``, make output verbose, default to ``False``
:type verbose: bool, optional
:returns: A class:Server object
:rtype: class: Server
:raises OpenBluError: An proper subclass of OpenBluError is raised if something goes wrong. If the error cannot be determined, a generic OpenBluError is raised
有关更多示例和更深入的描述,请查看此repo中的examples.py
文件
对象概述
下面是一些示例对象,可以让您直接开始
Note:打印出所有对象时,显示对象本身的所有信息(包括None
值等)
服务器列表
当打印出来时,ServerListing
对象应该如下所示,尽管相应的参数可能不同。在
ServerListing(
id=dbd24ff8e4802f22,
host_name=vpn774575625,
country=Germany,
country_short=DE,
score=366198,
ping=28,
sessions=66,
total_sessions=30926,
last_updated=1576539451,
created=1576529629)
服务器
server对象具有与ServerListing
相似的输出,但是(当然)它包含关于单个服务器的不同且更具描述性的信息。在
Server(
id=dbd24ff8e4802f22,
host_name=vpn774575625,
country=Germany,
country_short=DE,
score=366198,
ping=28,
sessions=66,
total_sessions=30926,
ip_address=78.54.226.91,
openvpn=<OpenVPN object at 0x7b2b706f10>,
last_updated=1576539451,
created=1576529629)
OpenVPN对象
OpenVPN对象的输出要少得多,因为打印对象的所有参数实际上需要几页的输出,它们的属性仍然可以通过点表示法和dict-like访问来访问。在
为了完整起见,这里列出了对象的所有参数;要获得有关其含义的详细信息,请参阅OpenBlu's official docs
- parameters
- certificate_authority
- certificate_authority_b64
- certificate
- certificate_b64
- key
- key_b64
- ovpn_configuration
例外情况
包装器实现了3个异常:
OpenBluError
->;所有异常的泛型父类,当API返回401和404以外的错误时也会引发ServerNotFound
->;向API提供无效的服务器ID时UnauthorizedAccess
->;向API提供无效的访问密钥时
其他错误,如JSON解码错误或HTTP失败,不会被捕获,必须由最终用户自己处理。在
最后,但并非最不重要的是
所有objects对象都支持dict-like访问和点标记,这意味着执行server["id"]
或{
- 项目
标签: