phpipam/phpipam-client

PHP 编写的 phpIPAM API 客户端

安装: 209

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 0

分支: 2

类型:

v1.0.1 2018-01-11 11:19 UTC

This package is auto-updated.

Last update: 2024-09-25 00:36:43 UTC


README

phpIPAM 是一个开源的 IP 地址管理网络应用程序,可以通过 API 控制。这是一个用于控制 phpIPAM 的 API 客户端。

了解更多

安装

您可以通过 composer 安装此软件包

目前我建议使用 1.0.x-dev 版本

composer require phpipam/phpipam-client:1.0.x-dev

因为我总是发现一些小问题,我在这个分支上修复了这些问题。

否则,您可以使用当前版本

composer require phpipam/phpipam-client

基本用法

您可以使用两种方式使用此客户端。

  1. 使用控制器类,让客户端为您管理大多数事务
  2. 使用客户端对象的调用方法

注意:我只提供到服务器的安全连接。API 提供两种方式来实现这一点

  • SSL
  • 自加密

安全 中了解更多

初始化连接

use phpipam\PhpIPAMClient;

$client = new PhpIPAMClient('1.2.3.4', 'myApp', 'name', 'password', 'apikey');

use phpipam\PhpIPAMClient\Connection\Connection;

Connection::initializeConnection('1.2.3.4', 'myApp', 'name', 'password', 'apikey');

第一种方式

我将使用分区控制器作为示例。重要的是要理解,这个 API 非常强对象化。这意味着,可以使用控制器作为代表服务器端对象的对象。这些对象提供了其属性的 getter 和 setter。您可以将客户端对象设置为属性。此客户端将自行处理对象和 ID 之间的转换!

在顶部导入控制器 use phpipam\PhpIPAMClient\Controller\Section;

获取所有分区

要获取所有分区,请使用 getAll 方法。这将返回一个包含所有分区的数组,这些分区作为 phpipam\Controller\Section 实例。

$sections = Section::getAll();

通过 ID 或名称获取分区

$section = Section::getByID('1');

$section = Section::getByName('name');

创建分区

您可以使用构造函数或 create 方法。

使用构造函数

$section = new Section(['params_array']);

并使用 getter 和 setter

$section->setDescription();

您需要使用 patch 方法来保存它

$section->patch();

修改分区

要修改分区,请使用其 setter 或数组到方法。或者两者都可以!但数组将覆盖给定的属性。

$section->setDescription('A cool description!');

删除分区

$section->delete();

第二种方式

$response = $client->call('method', 'controller', ['identifier_array'], ['param_array']);

这将返回一个 phpipam\Connection\Response 实例。您可以使用 getData 方法访问数据。

$data = $response->getData()

要获取整个响应体,请使用 getBody 方法。

$body = $response->getBody()

响应对象 中了解更多

控制器

注意

这些文档尚未准备就绪。我正在努力。阅读 phpIPAM API 文档。我已将请求 URL 映射到名称。例如

  • GET /api/my_app/subnets/{id}/ => $subnet = Subnet::getById($id);
  • GET /api/my_app/subnets/{id}/usage/ => $subnet->getUsage();
  • PATCH /api/my_app/subnets/{id}/ => Subnet::patch();

有关所有方法和控制器的更详细信息,请查看phpIPAM网站以及以下控制器文档

安全

构造函数的最后一个参数a是以下常量的值

use phpipam\PhpIPAMClient\Connection\Connection

  • Connection::SECURITY_METHOD_SSL
  • Connection::SECURITY_METHOD_CRYPT
  • Connection::SECURITY_METHOD_BOTH

我建议使用SLL方法。为此,您需要与服务器建立HTTPS连接!

如果您无法使用SSL,请使用加密。您需要提供后端的API密钥。此外,您需要更改一个服务器端文件,因为phpipam使用mcrypt,但该方法已弃用。我使用openssl

index.php

它在我的仓库中,但我会与phpipam的开发者保持联系,以便我们可以共同找到解决方案。

$client = new PhpIPAMClient('www.example.com/phpipam', 'myApp','','', '您的app密钥, Connection::SECURITY_METHOD_CRYPT)

如果您是偏执的(像我一样)安全爱好者,请使用Connection::SECURITY_METHOD_BOTH

$client = new PhpIPAMClient('https://www.example.com/phpipam', 'myApp','','', '您的app密钥, Connection::SECURITY_METHOD_BOTH)

异常

有两种类型的异常

  • PhpIPAMException

当API客户端出现问题时,将抛出此异常。

  • PhpIPAMRequestException

如果请求失败,将抛出此异常。此异常保存响应,以便您可以查找错误:$response = $e->getResponse();

更多关于响应对象的信息

许可

MIT