- 1. 概要
- 2. FreeBSD
- 3. Ubuntu
- 4. 参考サイト
1. 概要
命題は、「『IPv4』のローカル『IP』アドレスを、シェルスクリプトで取得して変数にいれる」です。
プラットフォームによって、使うコマンドが異なるので、ここではやったプラットフォームのみ記述します。
2. FreeBSD
「FreeBSD」では、「ifconfig」コマンドを中心に「IP」アドレスをします。
「FreeBSD 14.3 RELEASE」でやってみました。
シェルスクリプトは、下記のように記述します。
#!/bin/sh
# デフォルトルートが通るインターフェースを取得
INTERFACE=$(route get default 2>/dev/null | awk '/interface:/ {print $2}')
# IPv4 ローカルIPを取得
IP_ADDRESS=$(ifconfig "$INTERFACE" inet | awk '/inet / {print $2}')
echo "Local IPv4 address: $IP_ADDRESS"
実行結果は、例えば、下記のようになります。
Local IPv4 address: 192.168.1.2
3. Ubuntu
「Ubuntu」では、「ip」コマンドを中心に「IP」アドレスを取得します。
「Linux ubuntu2204 5.15.0-161-generic」でやってみました。
シェルスクリプトは、下記のように記述します。
#!/usr/bin/sh
# デフォルトルートが通るインターフェースを取得
INTERFACE=$(ip route | grep '^default' | awk '{print $5}')
# IPv4 ローカルIPを取得
IP_ADDRESS=$(ip -4 addr show "$INTERFACE" | grep -oP '(?<=inet\s)\d+(\.\d+){3}')
echo "Local IPv4 address: $IP_ADDRESS"
実行結果は、例えば、下記のようになります。
Local IPv4 address: 192.168.10.155
4. 参考サイト
本ページは、「ChatGPT」軍曹を参考にさせていただきました。
|
|