#单个ip之间转换
(1)将字符串ip转换为整形ip
#!/bin/sh
if [ $# -eq 0 ];then
echo " Usage: ip.sh 127.0.0.1"
exit
fi
a=`echo $1|awk -F '.' '{print $1}'`
b=`echo $1|awk -F '.' '{print $2}'`
c=`echo $1|awk -F '.' '{print $3}'`
d=`echo $1|awk -F '.' '{print $4}'`
let num=$a*256*256*256+$b*256*256+$c*256+$d
echo $num
(2)将整形i转换为字符串ip
#!/bin/sh
if [ $# -eq 0 ];then
echo " Usage: ip.sh 127.0.0.1"
exit
fi
a=$(($num/256/256/256));
b=$(($num/256/256-$a*256));
c=$(($num/256-$a*256*256-$b*256));
d=$(($num-a*256*256*256-$b*256*256-$c*256));
echo $a"."$b"."$c"."$d;
(3)将字符串ip转换为整形ip and 将整形i转换为字符串ip结合为同一个脚本,并且将结果输出到文件中
#!/bin/bash
func_1(){
cat ipfile.txt|while read line
do
a=`echo $ilne|awk -F '.' '{print $1}'`
b=`echo $line|awk -F '.' '{print $2}'`
c=`echo $line|awk -F '.' '{print $3}'`
d=`echo $line|awk -F '.' '{print $4}'`
let num=$a*256*256*256+$b*256*256+$c*256+$d
echo $num >> number.txt
done
echo "查看当前目录下文件number.txt"
}
func_2(){
cat numfile.txt|while read num
do
a=$(($num/256/256/256));
b=$(($num/256/256-$a*256));
c=$(($num/256-$a*256*256-$b*256));
d=$(($num-a*256*256*256-$b*256*256-$c*256));
echo $a"."$b"."$c"."$d >> ip.txt
done
echo "查看当前目录下文件ip.txt"
}
#当前目录是否存在文件夹ipresul
echo "【欢迎使用ip转换工具,】"
echo “【选项1为字符串ip转换为整形ip】”
echo “【选项2为整形ip转换为字符串ip】”
read -p "请输入选项(1 or 2):"num
echo $num
case $num in
1)
func_1
;;
2)
func_2
;;
esac