LinuxSir.cn,穿越时空的Linuxsir!

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

shell判断IP地址的问题

[复制链接]
发表于 2006-8-22 20:29:40 | 显示全部楼层 |阅读模式
请问各位大虾,如何通过shell编程来判断某串字符是不是IP地址?
如:192.168.0.1就是合法的IP地址
   192.286.FDA就是非法的IP地址
谢谢大家了
发表于 2006-8-22 23:01:24 | 显示全部楼层
http://www.linuxsir.cn/bbs/showthread.php?t=195067
http://www.linuxsir.cn/bbs/showthread.php?t=21008
Search before ask... most of the questions have answers already if you find.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-23 09:24:02 | 显示全部楼层

谢谢

谢谢yongjian,这正是我想要的,一直没找到,所以就发贴问问了!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-23 09:50:59 | 显示全部楼层

问题再次请教

我现在的IP地址是放在变量里的,不是放在文件里的,请问如何实现该IP地址合法性的判断!
如:IP=192.168.0.1
那么我怎么样写代码来判断这个IP合法性!
我是新手啊!
回复 支持 反对

使用道具 举报

发表于 2006-8-23 10:02:30 | 显示全部楼层
如果資料是這樣ㄋ
a.2.2.2.2
2.2.2.2a
好像都會誤判耶
回复 支持 反对

使用道具 举报

发表于 2006-8-23 11:35:52 | 显示全部楼层
put^and $ to define the word boundary should solve the problem.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-23 14:36:13 | 显示全部楼层

大家帮忙看看,还是IP地址判断的问题

我现在用yongjian提供的正则表达式写了如下程序:
ip=192.168.0.1
yes=`echo $ip | awk '{if($0~/\(\(\(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]\)\)\)$/) print "1"}'`
echo $yes


按说在这种情况下yes应该等于1的,但我执行过后发现yes这个变量里并没有内容啊!
是什么地方出了问题呢?大家帮帮我吧!急啊
回复 支持 反对

使用道具 举报

发表于 2006-8-23 17:45:29 | 显示全部楼层
觉得用匹配的方式应该是看哪些字符串象ip, 确认一个有效的ip地址最好还是ping一下:

IP=192.168.0.1;ping ${IP} -c 3 -W 5 >/dev/null 2>&1;if [ "$?" -eq 0 ]; then echo "${IP} is a real ip"; else echo "${IP} is not a real ip";fi
回复 支持 反对

使用道具 举报

发表于 2006-8-24 01:25:42 | 显示全部楼层
ping does not always return 0. its not a good method to check the integrity of an ip addr.
  1. echo "192.168.0.1" | sed -n '/\(\(\(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]\)\)\)$/p'
复制代码
The way I gave was for sed which uses base regex by default not extended, so you need "\" to esc special char. awk does not need "\".
回复 支持 反对

使用道具 举报

发表于 2006-8-24 11:40:54 | 显示全部楼层
/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/
回复 支持 反对

使用道具 举报

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

本版积分规则

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