免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1555 | 回复: 4
打印 上一主题 下一主题

有什么好办法可以知道传入的参数是有效的IP地址 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-04-29 11:47 |只看该作者 |倒序浏览
传入的参数必须是xxx.xxx.xxx.xxx形式的IP地址,其中xxx指数字,而且只可以是数字,只有符合这个条件的参数才允许执行脚本。

这个IP可能会是:
129.10.0.1
0.0.0.0
192.168.192.254
10.0.0.1
等不同类型。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2005-04-29 12:35 |只看该作者

有什么好办法可以知道传入的参数是有效的IP地址

对IP地址的判断,n有篇netman写的精华贴,可以找一找,看一看

论坛徽章:
0
3 [报告]
发表于 2005-04-29 15:58 |只看该作者

有什么好办法可以知道传入的参数是有效的IP地址

找到了。我试过了可行,但有另一个问题,awk里的变量赋值问题。

  1. #!/bin/sh
  2. echo "please input IP:"
  3. read ip
  4. #echo $ip |awk -F"." ' { if ( ($1<=256 && $1>=0) && ($2<=256 && $2>=0) && ($3<=256 && $3>=0) && ($4<=256 && $4>=0) && (NF==4) && ($1~/^[0-9]+$/) && ($2~/^[0-9]+$/) && ($3~/^[0-9]+$/) && ($4~/^[0-9]+$/)) { print $0,"correct" } else { print $0,"error" } }'
复制代码

这里,我希望当IP正确时令一个变量sign=true,否则变量sign=false。
看到烈火兄这样写过awk -v var=xxx,可是怎么用到这里去呢?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2005-04-29 17:02 |只看该作者

有什么好办法可以知道传入的参数是有效的IP地址

原帖由 "hawkli" 发表:
这里,我希望当IP正确时令一个变量sign=true,否则变量sign=false。
看到烈火兄这样写过awk -v var=xxx,可是怎么用到这里去呢?

把那段脚本写成函数,
var=$(ipscript)
[[ $var == "correct" ]]&&sign=true||sign=false
echo $sign

论坛徽章:
0
5 [报告]
发表于 2005-04-29 17:16 |只看该作者

有什么好办法可以知道传入的参数是有效的IP地址

酷。
绕了两个圈成了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP