phpipam / phpipam-client
PHP 编写的 phpIPAM API 客户端
Requires
- php: ^7.0
- guzzlehttp/guzzle: ^6.3
- respect/validation: ^1.1
Requires (Dev)
- larapack/dd: dev-master
- phpunit/phpunit: 6.5.5
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
基本用法
您可以使用两种方式使用此客户端。
- 使用控制器类,让客户端为您管理大多数事务
- 使用客户端对象的调用方法
注意:我只提供到服务器的安全连接。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
。
它在我的仓库中,但我会与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