역방향 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}'
또는 하나 perl
:
perl -F/[.]/ -lsne 'print @F[reverse 0..3]' -- -,=.