OCI IPアドレス一覧情報取得

## 概要
OCI上に割り当てられたIPアドレス情報をリストで取得する方法です。

<font color="red">
========================================================

2024年7月追記

OCIコンソールからIPアドレスのアサイン状況が確認できるようになりました。
サービスで付与されたIPアドレスも確認できます。</font>

OCIコンソール ナビゲーションからネットワーキング>>仮想クラウド・ネットワーク>>VCN>>Subnet
- CIDR/prefix Utilization
- IP Address Insights

Oracle Cloud InfrastructureでのIP Address Insightsの発表
https://blogs.oracle.com/oracle4engineer/post/ja-ann-ip-address-insights-to-oracle-cloud

<font color="red">
========================================================
</font>

## プライベートIP情報
■コンパートメントid取得
OCIコンソールの検索窓でコンパートメント名を入力するとコンパートメントが表示されるので選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/0b568888-26c9-ab75-19b1-faf1fd508c29.png)

コンパートメント情報が表示されるのでOCIDのコピーをクリックしてOCIDを取得します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/f4af2721-96f9-1f30-5c33-1e70fc98ffef.png)


OCIコンソールの右上リージョン右のアイコンを選択してCloud Shellを選択するとCloud Shellが開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/afe662fc-7c1d-2de3-ec74-d030d0b75509.png)

OCI CLIコマンドを使用してサブネットを取得します。
なお、例では取得情報をjqで必要情報のみ抽出しています。
``` CloudShell
user@cloudshell:~ (ap-sydney-1)$ oci network subnet list --compartment-id 【コンパートメントOCID】 | jq -r '["cidr-block", "display-name", "id"],(.data[]|[."cidr-block", ."display-name", ."id"])|@csv'
"cidr-block","display-name","id"
"10.106.2.0/24","SYD-Sub-10.106.2.0","ocid1.subnet.oc1.ap-sydney-1.aaaaaaaawbf54vsw6eeo5gov7ank4ijjx2h2iihczw57uncackmmylr*****"
"10.106.1.0/24","SYD-Sub-10.106.1.0","ocid1.subnet.oc1.ap-sydney-1.aaaaaaaa3hon5pi4vrr5qrgwd4brhbpanfpf4qtgu3hvjc5uu25e4y3*****"
"10.105.3.0/24","SYD-Sub-10.105.3.0","ocid1.subnet.oc1.ap-sydney-1.aaaaaaaanrbqj6yyge42tpwj53wzshtd5ehs72co3zae2icr5svdwhj*****"
"10.105.64.0/24","SYD-Sub-10.105.64.0","ocid1.subnet.oc1.ap-sydney-1.aaaaaaaaxs4qfv73w5xp4bju2pf3dzbg76d43btlcof2nh56lshro6i*****"
"10.105.66.0/24","SYD-Sub-10.105.66.0","ocid1.subnet.oc1.ap-sydney-1.aaaaaaaa6nxhpfhuqeqj5fq7bifcqdoglhkyzwbcl755usz2oklgtdx*****"
"10.105.65.0/24","SYD-Sub-10.105.65.0","ocid1.subnet.oc1.ap-sydney-1.aaaaaaaawkbt4hcrixxde3nywbriibucds2qqar4avhhtci2spctdck*****"
"10.105.2.0/24","SYD-Sub-10.105.2.0","ocid1.subnet.oc1.ap-sydney-1.aaaaaaaavz4tl3jlgjgvry7evxpqdizosmzmo3qkdqse6z5m3krgcnj*****"
"10.105.1.0/24","SYD-Sub-10.105.1.0","ocid1.subnet.oc1.ap-sydney-1.aaaaaaaaq4yxne6x56qczzpkpbq3rjb6l6lq54bdjc5kjhm2xug754a*****"
user@cloudshell:~ (ap-sydney-1)$ 

```
取得したサブネットを使用してプライベートIPリストを取得します。
なお、例では取得情報をjqで必要情報のみ抽出しています。
``` CloudShell
user@cloudshell:~ (ap-sydney-1)$ oci network private-ip list --subnet-id 【サブネットOCID】 | jq -r '["display-name", "ip-address"],(.data[]|[."display-name", ."ip-address"])|@csv'
"display-name","ip-address"
"fss-mnt-1000000052653395","10.105.1.11"
"SYD-VM-06-Softether","10.105.1.96"
"SYD-VM-01-Linux","10.105.1.100"
"SYD-VM-02-Win","10.105.1.104"
"fss-1000000052653395","10.105.1.114"
"privateip20230613083120","10.105.1.152"
user@cloudshell:~ (ap-sydney-1)$ 
```
なお、IPアドレスのうち、最初の2つと最後の1つは予約済みで使用不可です
（例：10.0.0.0/24の場合 .0, .1, .255は予約済)

[IPアドレスのうち、最初の2つと最後の1つは予約済みで使用不可](https://speakerdeck.com/ocise/ociji-shu-zi-liao-jia-xiang-kuraudonetutowaku-vcn-gai-yao?slide=6)

## パブリックIP情報
oci network public-ip listコマンドでlist出力可能です。
リージョンに紐づくIPとADに紐づくIPの2種類が出力可能です。またVMに紐づくIPはPrivateip OCID情報を元にどのVMに紐づいているかわかります。

リージョンに紐づくIP
``` CloudShell
user@cloudshell:~ (ap-sydney-1)$ oci network public-ip list --compartment-id 【コンパートメントOCID】 --scope REGION --all | jq -r '["display-name", "ip-address"],(.data[]|[."display-name", ."ip-address"])|@csv'
"display-name","ip-address"
"IP for NAT gateway: ocid1.natgateway.oc1.ap-sydney-1.aaaaaaaansk4idstu3dtjwftdeqec56fzif2zeyytygr6jvhg2udwc******","***.***.***.***"
"IP for NAT gateway: ocid1.natgateway.oc1.ap-sydney-1.aaaaaaaal2c2nvwlalq3piv4rbdlunc4ydizz47x4fnntdnvd6g6hq******","***.***.***.***"
"Floating IP for VIP public-vip on LB ocid1.loadbalancer.oc1.ap-sydney-1.aaaaaaaanldcymb5pkpbsltraunyenwuvbknh2gqc6bxjpbab7bbr******","***.***.***.***"
"Floating Public IP for cluster ocid1.cluster.oc1.ap-sydney-1.aaaaaaaab5hqve5zaytsqg5lmcyul6w5omcngidjs2conmnaocvx******","***.***.***.***"
user@cloudshell:~ (ap-sydney-1)$ 
```
ADに紐づくIP
``` CloudShell
user@cloudshell:~ (ap-sydney-1)$ oci network public-ip list --compartment-id 【コンパートメントOCID】 --scope AVAILABILITY_DOMAIN --availability-domain TGjA:AP-SYDNEY-1-AD-1 --all | jq -r '["display-name", "ip-address"], (.data[]|[."display-name", ."ip-address", ."private-ip-id"])|@csv'
"display-name","ip-address"
"publicip20230615081510","***.***.***.***","ocid1.privateip.oc1.ap-sydney-1.abzxsljr5rar7zowxpwiqezce6oi6cj7o62ckxzai6ertdhyxgrmd******"
"publicip20230612164702","***.***.***.***","ocid1.privateip.oc1.ap-sydney-1.abzxsljrwn76g5euh5cl6tpqj26wxlitq6cocqlkflwzgfvhbm45t******"
"publicip20230613220403","***.***.***.***","ocid1.privateip.oc1.ap-sydney-1.abzxsljr7seguq3kx5ipqdrue2sw4plg5hmtqu4p5mpaufa22v2j7******"
user@cloudshell:~ (ap-sydney-1)$ 
```