リバースDNS IPアドレスのリストを通常の形式に変換したいと思います。
つまり
43.201.125.10.in-addr.arpa
に変換10.125.201.43
可能ですか?
答え1
IPv4
、およびdig
:Perl
$ 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]' -- -,=.