環境変数へのIPアドレスの割り当て

環境変数へのIPアドレスの割り当て

eth0のIPアドレスを環境変数(たとえば$ ip)にできるだけ簡単に割り当てるにはどうすればよいですか?

アップデート:ディストリビューションはUbuntu Server 12.04 LTSです。

答え1

より短く、よりきれいな方法は、hostname -iipconfig、ip、sed、awkなどを使用する面倒ではありません。

答え2

使用するip address show方法です。特に、最新のLinuxシステムでは、照会するインターフェースに不明ifconfigなアドレスが複数ある可能性があります。

$ ip a s eth0 | awk '/inet / {print$2}'
10.13.211.83/24
192.168.17.21/16

もちろん、ネットマスクが不要な場合は、次のように必要に応じてパイプします。

cut -d/ -f1

注:同じシステムでは、ifconfigは以下を表示します。

$ ifconfig em1 | awk '/inet / {print $2}'
10.13.211.83

答え3

定義されたインターフェイスにIPを割り当てたいので、特定の質問には答えませんが、後で使用するためにここで外部IP(NAT以降)を取得する方法を一覧表示するのが役に立つと思いました。

ip=`wget -qO- ipecho.net/plain`

答え4

また確認してください:

ifconfig eth0 | awk '/inet /{print $2}' | cut -f2 -d':'

SolarisおよびHP-UXでも機能します(代わりに適切なnet devを使用eth0)。

hostname -iコマンドの場合、hostname -I設定されたインターフェイス(ループバックを除く)がある場合は試してください。

関連情報