IPアドレスを10進数に変換するスクリプト ip2int.sh

IPアドレスを10進数に変換します。203.0.113.0 -> 405803776。
Excelのオートフィルタを使ったソートなどに役立ちます。192.0.2.2の前に192.0.10がくるなんてことはなくなります。

cat << 'EOF' > /usr/local/bin/ip2int.sh
#!/bin/bash
LANG=C
PATH=/bin:/usr/bin
if [ $# -ne 1 ]
then
  echo "Usage: $0 [IPAddress]"
  exit 1
fi
O1=$( awk -F\. '{printf"%d",$1}' <<< "$1" )
O2=$( awk -F\. '{printf"%d",$2}' <<< "$1" )
O3=$( awk -F\. '{printf"%d",$3}' <<< "$1" )
O4=$( awk -F\. '{printf"%d",$4}' <<< "$1" )
echo "$(( ( ${O1} << 24 ) + ( ${O2} << 16 ) + ( ${O3} << 8 ) + ${O4} ))"
exit 0
EOF
タイトルとURLをコピーしました