我想将反向 DNS IP 地址列表转换为正常格式。
IE
转换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]' -- -,=.