LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 3242|回复: 14

我写了一个验证IP地址正确性的脚本,可总是不成功,请教!!

[复制链接]
发表于 2005-4-28 16:43:28 | 显示全部楼层 |阅读模式
从网上也查了不少资料,不过好象都不可以。
我是这么写的:

grep '[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}\.[0-9]' abc.txt

abc.txt里面是一些IP,有正确的也有错误的。我的需求很简单,只要能验证输入的是IP的格式就行了,意思就是只要是X.X.X.X的格式就可以了,可居然不成功。
请教大家
发表于 2005-4-28 16:53:41 | 显示全部楼层
错了,忘记每段最多只有3位数了,真是stupid,楼下正解。
回复 支持 反对

使用道具 举报

发表于 2005-4-28 17:37:33 | 显示全部楼层
这样也可以:
  1. zhyfly@zhyfly:~/bash$ sudo ifconfig|grep "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"
  2.           inet addr:211.64.151.45  Bcast:211.64.151.63  Mask:255.255.255.224
  3.           inet addr:127.0.0.1  Mask:255.0.0.0
  4. zhyfly@zhyfly:~/bash$
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-28 18:00:31 | 显示全部楼层
谢谢帮忙!!
回复 支持 反对

使用道具 举报

发表于 2005-4-28 18:43:38 | 显示全部楼层
/sbin/ifconfig|perl -ne 'print if(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/)'
回复 支持 反对

使用道具 举报

发表于 2005-4-28 19:15:33 | 显示全部楼层
Post by DSL
/sbin/ifconfig|perl -ne 'print if(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/)'

perl高手啊!
回复 支持 反对

使用道具 举报

发表于 2005-4-29 10:37:21 | 显示全部楼层
只判断形式:

  1. /\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}/
复制代码


判断形式和真实性:

  1. /\(\(\(1\?[0-9]\?[0-9]\)\|\(2\([0-4][0-9]\|5[0-5]\)\)\)\.\)\{3\}\(\(1\?[0-9]\?[0-9]\)\|\(2\([0-4][0-9]\|5[0-5]\)\)\)$/
复制代码
回复 支持 反对

使用道具 举报

发表于 2005-4-30 01:17:28 | 显示全部楼层
Post by yongjian
只判断形式:

  1. /\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}/
复制代码


判断形式和真实性:

  1. /\(\(\(1\?[0-9]\?[0-9]\)\|\(2\([0-4][0-9]\|5[0-5]\)\)\)\.\)\{3\}\(\(1\?[0-9]\?[0-9]\)\|\(2\([0-4][0-9]\|5[0-5]\)\)\)$/
复制代码

这才是master
回复 支持 反对

使用道具 举报

发表于 2005-4-30 04:12:41 | 显示全部楼层
Post by DSL
这才是master


过奖了。 我原没有想到ip的判断会这么麻烦。我做不出再短小简单的匹配方法了。
回复 支持 反对

使用道具 举报

发表于 2005-4-30 23:01:08 | 显示全部楼层
Post by yongjian
过奖了。 我原没有想到ip的判断会这么麻烦。我做不出再短小简单的匹配方法了。

哈哈,不是夸奖!是事实!因为没有良好的regex功底和清晰的思路,是写不出来的!
回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表