if elseに変数IPアドレスを渡す

if elseに変数IPアドレスを渡す

私は次のコマンドを持っています:

ptr=`host $hostname`

結果は次のとおりです。

test.tester.test has address 192.168.1.1

動作します!

今私が望むのは、IPアドレス(192.168.1.1)だけを抽出して$ myptr変数に渡し、次のコマンドを実行することです。

if $myptr | sed -n '/\(\(1\?[0-9][0-9]\?\|2[0-4][0-9]\|25[0-5]\)\.\)\{3\}\(1\?[0-9][0-9]\?\|2[0-4][0-9]\|25[0-5]\)/p' ; then
   host $myptr
else
   echo "No PTR Record found"
fi

しかし、これはうまくいきません。助けてください?

ベストアンサー1

の出力に対して追加のテキスト処理を実行する必要はなく、IPアドレスのみを取得するためにhost使用できますdig +short(そして必要なIPリバースルックアップを実行します)。

dig +short "$hostname"

例えば

ip="$(dig +short "$hostname")"
host "$ip"

または直接:

host "$(dig +short "$hostname")"

おすすめ記事