シェルスクリプト-IPアドレスを取得する

IPアドレスを取得する。

下記コマンドで取得できます。


IFACE="eth0"
IP_ADDRESS=$(/sbin/ip -f inet -o addr show "${IFACE}" | cut -d\  -f 7 | cut -d/ -f 1)

IPアドレスの正規表現

egrepで入力値がIPアドレスの形式か判定します。


    read -p "Please enter the IP address : " IP_ADDR
    ret=$(echo ${IP_ADDR} | egrep "^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$")

    if [ ! "${ret}" ] ; then
        echo "[Err] Invalid IP address : ${IP_ADDR} ."
        return 1
    fi

MACアドレスを取得する

ifconfigコマンドから正規表現で取得します。



NIC_NAME="eth0"

function getMACAddr(){
    local buff=""

    buff=$(ifconfig "${NIC_NAME}" | grep "${NIC_NAME}")
    MAC_ADDR=$(echo "${buff}" | grep -i -o '[0-9A-F]\{2\}\(:[0-9A-F]\{2\}\)\{5\}')
    if [ $? -ne 0 ]; then
        echo "[Err] Failed to get MAC address."
        return 1
    fi

    if [ "${MAC_ADDR}" == "" ]; then
        echo "[Err] MAC address is empty."
        return 1
    fi

    return 0
}

関連ページ