免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5581 | 回复: 4

[网络相关] 把数字串转换为IP地址或者把IP地址转换为数字串 [复制链接]

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-10-11 06:20:0015-16赛季CBA联赛之山东
日期:2016-05-28 18:18:5615-16赛季CBA联赛之新疆
日期:2017-04-12 22:55:4715-16赛季CBA联赛之青岛
日期:2017-06-26 18:30:0315-16赛季CBA联赛之四川
日期:2017-09-04 12:27:0315-16赛季CBA联赛之福建
日期:2018-02-09 14:28:3315-16赛季CBA联赛之同曦
日期:2018-04-17 12:43:3415-16赛季CBA联赛之浙江
日期:2018-07-14 13:27:4015-16赛季CBA联赛之吉林
日期:2018-09-13 15:48:2915-16赛季CBA联赛之新疆
日期:2016-05-07 05:05:3215-16赛季CBA联赛之八一
日期:2016-03-14 12:32:06程序设计版块每日发帖之星
日期:2015-12-12 06:20:00
发表于 2015-09-18 00:11 |显示全部楼层
本帖最后由 baby_神 于 2015-09-18 00:23 编辑
  1. #!/bin/bash
  2. #数字串转换为ip地址
  3. zhuanhuan(){
  4.   ((a1=16#$a))
  5.   ((b1=16#$b))
  6.   ((c1=16#$c))
  7.   ((d1=16#$d))
  8.   echo "$a1.$b1.$c1.$d1"
  9. }
  10. if [ $# -lt 1 ];then
  11.    echo "Usage:5.sh 数字串"
  12.    exit 2
  13. fi
  14. x=`printf %x $1`
  15. m=$((`echo $x| wc -m`-1))
  16. echo "$x"
  17. if [ "${m}" == "8" ];then
  18.   a=`echo "$x" | cut -c 1,2`
  19.   b=`echo "$x" | cut -c 3,4`
  20.   c=`echo "$x" | cut -c 5,6`
  21.   d=`echo "$x" | cut -c 7,8`
  22.   zhuanhuan
  23. elif [ "${m}" == "7" ];then
  24.   a=`echo "$x" | cut -c 1`
  25.   b=`echo "$x" | cut -c 2,3`
  26.   c=`echo "$x" | cut -c 4,5`
  27.   d=`echo "$x" | cut -c 6,7`
  28.   zhuanhuan
  29. else
  30.   echo "不能转换为合法的IP地址"
  31. fi
复制代码
  1. #!/bin/bash
  2. #IP地址转换为数字串
  3. if [ $# -lt 1 ];then
  4.    echo "Usage:5.sh IPAddress"
  5.    exit 2
  6. fi
  7. a=`printf %x $(echo "$1" | cut -d. -f1)`
  8. b=`printf %x $(echo "$1" | cut -d. -f2)`
  9. c=`printf %x $(echo "$1" | cut -d. -f3)`
  10. d=`printf %x $(echo "$1" | cut -d. -f4)`
  11. e=${a}${b}${c}${d}
  12. echo $e
  13. if [ $((`echo $e| wc -m`-1)) -gt 8 ] ; then
  14.    echo "输入的不是合法IP地址!"
  15. else
  16.   ((x=16#$e))
  17.   echo "转换完的数字串为${x}"
  18. fi
复制代码

cmd

cmd


供大家参考娱乐,希望高手能精简下

论坛徽章:
18
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:3815-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0020周年集字徽章-年
日期:2023-04-23 11:17:52
发表于 2015-09-18 00:45 |显示全部楼层
  1. [root@pbox:~]# cip(){ echo $1|awk -F. '{n=0;for(i=1;i<=NF;i++){n*=256;n+=$i}print n}'; }
  2. [root@pbox:~]# cip 192.168.1.1
  3. 3232235777
  4. [root@pbox:~]#
复制代码

评分

参与人数 2信誉积分 +20 收起 理由
KoomIer + 10
hjfeng1988 + 10 赞一个!

查看全部评分

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-10-11 06:20:0015-16赛季CBA联赛之山东
日期:2016-05-28 18:18:5615-16赛季CBA联赛之新疆
日期:2017-04-12 22:55:4715-16赛季CBA联赛之青岛
日期:2017-06-26 18:30:0315-16赛季CBA联赛之四川
日期:2017-09-04 12:27:0315-16赛季CBA联赛之福建
日期:2018-02-09 14:28:3315-16赛季CBA联赛之同曦
日期:2018-04-17 12:43:3415-16赛季CBA联赛之浙江
日期:2018-07-14 13:27:4015-16赛季CBA联赛之吉林
日期:2018-09-13 15:48:2915-16赛季CBA联赛之新疆
日期:2016-05-07 05:05:3215-16赛季CBA联赛之八一
日期:2016-03-14 12:32:06程序设计版块每日发帖之星
日期:2015-12-12 06:20:00
发表于 2015-09-18 12:15 |显示全部楼层
大神,我想问下,你这样做的原理是什么。回复 2# bikkuri


   

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-10-11 06:20:0015-16赛季CBA联赛之山东
日期:2016-05-28 18:18:5615-16赛季CBA联赛之新疆
日期:2017-04-12 22:55:4715-16赛季CBA联赛之青岛
日期:2017-06-26 18:30:0315-16赛季CBA联赛之四川
日期:2017-09-04 12:27:0315-16赛季CBA联赛之福建
日期:2018-02-09 14:28:3315-16赛季CBA联赛之同曦
日期:2018-04-17 12:43:3415-16赛季CBA联赛之浙江
日期:2018-07-14 13:27:4015-16赛季CBA联赛之吉林
日期:2018-09-13 15:48:2915-16赛季CBA联赛之新疆
日期:2016-05-07 05:05:3215-16赛季CBA联赛之八一
日期:2016-03-14 12:32:06程序设计版块每日发帖之星
日期:2015-12-12 06:20:00
发表于 2015-09-18 12:50 |显示全部楼层
回复 2# bikkuri
[root@zj ~]# echo 255.255.255.255 |awk -F. '{n=0;for(i=1;i<=NF;i++){n*=256;n+=$i}print n}'      
4.29497e+09
你这个不对呐,这样就有问题了


   

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
发表于 2015-09-18 15:08 |显示全部楼层
回复 4# baby_神

$ echo 255.255.255.255 |awk -F. '{n=0;for(i=1;i<=NF;i++){n=n*256+$i}print n}'
4294967295

$ echo 255.255.255.255 |awk -F. '{n=0;for(i=1;i<=NF;i++){n=n*256+$i}printf("%d\n",n)}'
4294967295

$ echo 255.255.255.255 | busybox awk -F. '{n=0;for(i=1;i<=NF;i++){n=n*256+$i}printf("%.0f\n",n)}'
4294967295

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP