Shell
如何反向讀取IP地址?
如果我們有這個字元串(IP 地址):
192.168.1.1
我怎樣才能從這個字元串中導出(DNS 反向記錄形式),所以它會像
1.1.168.192.in-addr.arpa
使用 shell 腳本一樣顯示?
你可以用AWK做到這一點。有更好的方法可以做到這一點,但我認為這是最簡單的。
echo '192.168.1.1' | awk 'BEGIN{FS="."}{print $4"."$3"."$2"."$1".in-addr.arpa"}'
這將顛倒 IP 地址的順序。
正如 Mikel 建議的那樣,為了節省一些擊鍵,我們可以進一步縮短上面的語句:
echo '192.168.1.1' | awk -F . '{print $4"."$3"."$2"."$1".in-addr.arpa"}'
或者
echo '192.168.1.1' | awk -F. '{print $4"."$3"."$2"."$1".in-addr.arpa"}'
或者
echo '192.168.1.1' | awk -F. -vOFS=. '{print $4,$3,$2,$1,"in-addr.arpa"}'
AWK 非常靈活。:)
*只是為了好奇的價值……*使用
tac
來自 GNU coreutils:給定一個變數ip
,形式為192.168.1.1
then$(printf %s "$ip." | tac -s.)in-addr.arpa
IE
$ ip=192.168.1.1 $ rr=$(printf %s "$ip." | tac -s.)in-addr.arpa $ echo "$rr" 1.1.168.192.in-addr.arpa