教你如何用 Linux Shell脚本判断IP是否合法(多种方法)
来自 | 李振良的技术博客
链接 | http://t.cn/RQEqmBE
从运维角度来说,写shell脚本经常会遇到判断输入的值是否合法,比如IP、邮件地址等。那么,根据自身写脚本中总结的判断IP合法性脚本分享给网友,遇到时能有所参考。
思路:IP由四位数字组成,以点分割,每个字段不能大于255,必须符合这种格式
方法1:
#!/bin/bash # blog: http://lizhenliang.blog.51cto.com function check_ip() { IP=$1 VALID_CHECK=$(echo $IP|awk -F. '$1<=255&&$2<=255&&$3<=255&&$4<=255{print "yes"}') if echo $IP|grep -E "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$">/dev/null; then if [ ${VALID_CHECK:-no} == "yes" ]; then echo "IP $IP available." else echo "IP $IP not available!" fi else echo "IP format error!" fi }
# Example check_ip 192.168.1.1 check_ip 256.1.1.1
方法2:
#!/bin/bash # blog: http://lizhenliang.blog.51cto.com function check_ip() { IP=$1 if [[ $IP =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then FIELD1=$(echo $IP|cut -d. -f1) FIELD2=$(echo $IP|cut -d. -f2) FIELD3=$(echo $IP|cut -d. -f3) FIELD4=$(echo $IP|cut -d. -f4) if [ $FIELD1 -le 255 -a $FIELD2 -le 255 -a $FIELD3 -le 255 -a $FIELD4 -le 255 ]; then echo "IP $IP available." else echo "IP $IP not available!" fi else echo "IP format error!" fi }
# Example check_ip 192.168.1.1 check_ip 256.1.1.1
加个循环,如果错误则重新输入,直到正确:
#!/bin/bash # blog: http://lizhenliang.blog.51cto.com function check_ip() { local IP=$1 VALID_CHECK=$(echo $IP|awk -F. '$1<=255&&$2<=255&&$3<=255&&$4<=255{print "yes"}') if echo $IP|grep -E "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$" >/dev/null; then if [ $VALID_CHECK == "yes" ]; then echo "IP $IP available!" return 0 else echo "IP $IP not available!" return 1 fi else echo "IP format error!" return 1 fi }
while true; do read -p "Please enter IP: " IP check_ip $IP [ $? -eq 0 ] && break done
教你如何用 Linux Shell脚本判断IP是否合法(多种方法)相关推荐
- linux怎么判断网络是否正常运行,Linux shell脚本判断服务器网络是否可以上网
微信公众号:「小林coding」 用简洁的方式,分享编程小知识. Linux shell脚本判断网络畅通 介绍 在编写shell脚本时,有的功能需要确保服务器网络是可以上网才可以往下执行,那么此时就需 ...
- linux shell脚本判断文件行数,判断文件是否存在的shell脚本代码
实现代码一. #!/bin/sh # 判断文件是否存在 # lilSzqFnk:www.jb51.net # date:2013/2/28 myPath="/var/log/httpd/&q ...
- Linux shell脚本判断服务器网络是否可以上网
在编写shell脚本时,有的功能需要确保服务器网络是可以上网才可以往下执行,那么此时就需要有个函数来判断服务器网络状态. 我们可以通过curl来访问 www.baidu.com,从而判断服务器网络状态 ...
- Shell脚本判断IP是否合法性(多种方法)
运维角度来说,写shell脚本经常会遇到判断输入的值是否合法,比如IP.邮件地址等.那么,根据自身写脚本中总结的判断IP合法性脚本分享给网友,遇到时能有所参考. 思路:IP由四位数字组成,以点分割,每 ...
- Linux Shell脚本Ldd命令原理及使用方法
1.首先ldd不是一个可执行程序,而只是一个shell脚本 2.ldd能够显示可执行模块的dependency,其原理是通过设置一系列的环境变量 如下:LD_TRACE_LOADED_OBJECTS. ...
- linux命令取ip,linux下命令取IP地址的多种方法
经常会遇到在命令行取ip地址,或写脚本引用ip地址,需要使用命令取出来:下面的方法根据实际情况调整 下面的命令环境为centos6.6系统:[root@localhost ~]# ifconfig e ...
- linux shell脚本判断文件或文件夹是否存在循环操作
我最近写的脚本 你改改就能用 3.sh中全是 /data/test 这样的指向目录的数据 #!/bin/bash #set -x#循环读取文件目录 for line in `cat /root/shi ...
- linux shell脚本 判断,Shell脚本中的逻辑判断
-gt 表示大于 -lt 表示小于 -ge 表示大于等于 -le 表示小于等于 -eq 表示等于 -ne 表示不等于 语法: 格式1:if 条件 ; then 语句; fi #如果满足条件,然后怎么样 ...
- linux shell脚本 检查IP地址格式
网上好多检查IP地址格式的脚本,大都看起来让人晕乎乎的.. 这里贴一个我自己写的比较简单易懂的脚本,根据自己的需要稍加改动应该就可以用了~~~ #!/bin/sh ip_string="1. ...
- Linux Shell脚本入门教程系列之(九)Shell判断 if else 用法
本文是Linux Shell脚本系列教程的第(九)篇,更多shell教程请看:Linux Shell脚本系列教程 判断语句是每个语言都必不可少的关键语法,Shell命令当然也不例外.继上一篇之后,今天 ...
最新文章
- 苹果谷歌脸书大佬前往游说!欧盟将首次对AI进行监管
- Java 全能手册火了!Redis/Nginx/Dubbo/Spring 全家桶/啥都有
- UICollectionView 具体解说学习
- Angular_PWA使用+Demo
- java platform se binary怎么关闭_如何吐槽舌尖上的折磨?diss难吃只会说malo,那还怎么battle?...
- rabbitmq充分利mysql_牛逼哄哄的 RabbitMQ 到底有啥用?
- 微信自动抢红包软件被判赔 475 万;日本科学家打破网速全球纪录;JavaScript蝉联最受欢迎编程语言|极客头条...
- Lightroom 教程,如何将照片从 Lightroom 移至Photoshop,在 Ps 中合并图像?
- 转:So Easy!让开发人员更轻松的工具和资源
- PHP has encountered an Access Violation at
- 逻辑回归:详细建模流程与例子代码
- 深度学习 | 《深度学习》“花书”知识点笔记
- 爱玩软件 | win10桌面美化
- html表格 超链接无效,excel表格超链接失效怎么处理
- 综合布线(楼栋)设计报告
- 053试题 - 320/321/322/323/324/326/330/332/544/553/585/586/587/588/589/592/596/597/598/599 rman backup
- 快速分析京东物流详情,并导出EXCEL表格
- GEEer成长日记十二:Modis_LST地表温度产品时间序列分析
- 如何让二维码变得好看
- Web测试如何让IT门外汉更好的入门篇
热门文章
- POI 读取 Excel 文件(2003版本与2007版本的差异之处)
- Exchange企业实战技巧(17)让密件抄送给特定用户
- XMind思维导图文件损坏,无法打开怎么办?
- 苹果mac视频剪辑软件:Final Cut Pro
- 在桌面养只捣蛋鹅,让 Desktop Goose 陪你一起用Mac
- 如何使用macOS自带网络测速功能?
- inDesign教程,如何将内容与参考线对齐?
- iOS 14.7 中的所有新功能
- Cisdem DVD Burner for Mac(DVD光盘刻录软件)
- C++中“强制转换”的四大天王