その他メモ

  (最終更新日:2018.10.30)

phpIPAMでRest APIを利用してデータを参照する手順

IPアドレス管理をブラウザベースでしてくれる何気に便利なオープンソース『phpIPAM』でAPIを利用する際のメモです。例えばAPIを利用して特定のサブネットのIP一覧をJSON形式などで取得できたりします。

APIの有効化

まずは「phpIPAM settings」からAPIを有効化するので phpIPAM settings の画面を表示させます。

項目「Feature settings」内の「API」を ON に切り替えて最下部の「save」から保存します。

続いてAPIにアプリケーションを登録するので、「API」をクリック。

「Create API key」をクリック。

「App id」に任意のアプリケーション名を。例えば「hogeapi」など。その他の項目も入力し「Add」から追加します。下図は今回試しに設定した項目。とりあえずIP情報の追加や更新はするつもりがなく参照のみなので権限(App permissions)は「Read」としています。あと内部からの接続なのでセキュリティ(App security)も「none」に。

APIの使い方

以上で前準備は完了なので、後はGETなりでAPIからデータを取得するだけです。今回はサクッと試したいのでサーバの cURL コマンドでデータを取得してみています。cURL便利かよ。

まずはログインIDとパスワードを利用してトークンを取得しなければなりません。トークンの有効期限は6時間とのこと。これ面倒くさくない?

$ curl -X POST --user testuser:testpassword http://10.0.0.1/phpipam/api/hogeapi/user/ -i

HTTP/1.1 200 OK
Date: Tue, 30 Oct 2018 05:30:55 GMT
Server: Apache/2.4.6 (CentOS)
Set-Cookie: PHPSESSID=9rc5g7f49c9g1hqqa4lf6m3sh3; expires=Wed, 31-Oct-2018 05:30:55 GMT; path=/; HttpOnly
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 116
Content-Type: application/json; charset=utf-8

{"code":200,"success":true,"data":{"token":"=Nf4DA1SsRIA9+H.$S%cAp9m","expires":"2018-10-30 20:30:55"},"time":0.008}

今回取得できたトークンは「=Nf4DA1SsRIA9+H.$S%cAp9m」だそうです。

あとはこれを利用してAPI取得するだけ。
例えば今回はサブネットid「75」に存在するIP一覧を取得してみます。サブネットidはURLからも判別可能です。

http://10.0.0.1/phpipam/index.php?page=subnets&section=11&subnetId=75

サブネット配下の一覧を取得するアドレスは【/api/アプリケーション名/subnets/サブネットID/addresses/】にて取得可能ですので、実際のcURLコマンドは下記のようになります。

$ curl -X GET -H 'token: =Nf4DA1SsRIA9+H.$S%cAp9m' http://10.0.0.1/phpipam/api/hogeapi/subnets/75/addresses/ -i

正常にリクエストが成功すれば結果がズラズラズラっと表示されるはずです。

スポンサーリンク
スポンサーリンク

関連記事

  1. その他メモ

    IEEEのWEBサイトでMacアドレスからベンダー名を検索する方法

    MACアドレスからベンダー名(メーカー名)を調べたいときの方法です。…

  2. その他メモ

    ColdFusion 2016をCentOS 7にインストールする手順

    ColdFusion2016 を CentOS 7 にインストールする…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

最近の記事

  1. PHP PhantomJSでFatal error: Unc…
  2. 【Oracle】DataPumpの対話式コマンドモードを抜け…
  3. CentOS7のPHP5.6にPhpSpreadsheetを…
  4. Azure仮想マシン(CentOS 7)のStandardデ…
  5. 【CentOS 7】特定ユーザーのクォータ設定を削除(無制限…
PAGE TOP