LinuxSir.cn,穿越时空的Linuxsir!

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

用脚本如何判断我输入的内容是否是ip

[复制链接]
发表于 2004-7-13 08:29:23 | 显示全部楼层 |阅读模式
如我用read a输入一个内容,想编个脚本来实现判断他是否是ip,如果是就telnet,如不是就退出。
发表于 2004-7-13 10:15:23 | 显示全部楼层
可以根据ping一下的返回状态来决定.

  1. read a
  2. ping -c1 $a >/dev/null 2>&1
  3. case $? in
  4. 0)      telnet $a;;
  5. *)      echo  error;;
  6. esac
复制代码

ps:为测试
发表于 2004-7-13 20:18:05 | 显示全部楼层
不知道怎的,新近的ping不让普通用户使用了。
 楼主| 发表于 2004-7-13 20:33:11 | 显示全部楼层
这可能怪我没有说清楚,你们说的办法我知道,我的本意是想用脚本判断出我输入的东西的格式是否是合法IP的格式。
比如:
abcd
www.163.com
192.168.1.211
192.168.1.999
我上面的东西显然只有第三个是ip的格式,其它的格式都不是ip的格式。
发表于 2004-7-13 23:42:21 | 显示全部楼层
最初由 gao_linfeng 发表
这可能怪我没有说清楚,你们说的办法我知道,我的本意是想用脚本判断出我输入的东西的格式是否是合法IP的格式。
比如:
abcd
www.163.com
192.168.1.211
192.168.1.999
我上面的东西显然只有第三个是ip的格式,其它的格式都不是ip的格式。

我的意思是说,你ping一下用户输入的IP,如果可以ping通,则这个IP是合法
换句话说,ping不通 的IP也没什么意义!不管他是不是合法 ;)
发表于 2004-7-13 23:59:24 | 显示全部楼层
直接判断也不难, 没有(.)的去掉后用awk拆分. 先判断每个octal是否都是数字(置顶帖有),然后判断每个数子是否符合要求(<255).
 楼主| 发表于 2004-7-14 11:15:45 | 显示全部楼层
谢谢楼上的几位兄弟,我知道了,
read a
127.0.0.1
if echo $(echo $a|awk 'split (x,".");print x [1]')<255
发表于 2004-7-14 13:35:37 | 显示全部楼层

网络地址也要去掉吧

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

本版积分规则

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