リバースIPアドレスをIPアドレスに変換するには?

リバースIPアドレスをIPアドレスに変換するには?

リバースDNS IPアドレスのリストを通常の形式に変換したいと思います。

つまり

43.201.125.10.in-addr.arpaに変換10.125.201.43

可能ですか?

答え1

IPv4、およびdigPerl

$ dig +short PTR 51.28.174.37.in-addr.arpa. |
    perl -F'[.-]' -nE 'say join ".", @F[0..3]'

文字列として

$ echo 51.28.174.37.in-addr.arpa. |
    perl -F'[.-]' -nE 'say join ".", reverse @F[0..3]'
37.174.28.51

答え2

start cmd:> echo '43.201.125.10.in-addr.arpa' | 
    awk -F. 'NF==6 && $5=="in-addr" && $6=="arpa" { print $4 "." $3"." $2 "." $1; }'
10.125.201.43

答え3

一般的なbashの使用:

input="43.201.125.10.in-addr.arpa"
IFS='.' read -ra octets <<< "$input"
printf -v ipaddr "%d.%d.%d.%d" "${octets[3]}" "${octets[2]}" "${octets[1]}" "${octets[0]}"

それから

$ declare -p ipaddr
declare -- ipaddr="10.125.201.43"

答え4

例で提供されているテキストの場合、awkソリューションは最も単純に見えます。

awk -F. -v OFS="." '{print $4,$3,$2,$1}'

または1つperl

perl -F/[.]/ -lsne 'print @F[reverse 0..3]' -- -,=.

関連情報