中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-28 09:57
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 讨论:用findstr 判断输入的ip是否合法 查看 2,749 回复 36
楼 主 讨论:用findstr 判断输入的ip是否合法 发表于 2008-05-09 15:39 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
用findstr 判断输入的ip是否合法
合法的ip是: 数字.数字.数字.数字 不管数字是多少位都可以。





...

[ Last edited by 26933062 on 2008-5-9 at 04:37 PM ]
致精致简!
2 发表于 2008-05-09 16:08 ·  中国 江苏 苏州 电信
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
findstr 无法匹配准确的IP
因为它会列出整行信息
而且findstr没有匹配零次或一次(?)符

[ Last edited by huahua0919 on 2008-5-9 at 04:13 PM ]
3 发表于 2008-05-09 16:13 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
Originally posted by huahua0919 at 2008-5-9 16:08:
findstr 无法匹配准确的IP
因为它会列出整行信息

未必。
已经测试出结果了。留着作为一个题目给大家讨论吧。。
致精致简!
4 发表于 2008-05-09 16:14 ·  中国 江苏 苏州 电信
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
能否结果贴出来看,能匹配
255.255.255.0
127.0.0.1
5 发表于 2008-05-09 16:15 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
题目要求只要是 数字.数字.数字.数字 就是合法ip啊。不管数字是多少位。

[ Last edited by 26933062 on 2008-5-9 at 04:17 PM ]
致精致简!
6 发表于 2008-05-09 16:18 ·  中国 江苏 苏州 电信
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
那肯定不行啊,以数字5开头的能算合法 IP吗?
7 发表于 2008-05-09 16:27 ·  中国 江苏 苏州 电信
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线

findstr "*\.*\.*\.*"
8 发表于 2008-05-09 16:29 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
你的会把这些也当作合法ip
.12.23.23
192.002.168..1
12.12.12.
192.1.2.3.5
192..12.12
致精致简!
9 发表于 2008-05-09 16:37 ·  中国 广东 广州 电信
高级用户
★★★
潜水修练批处理
积分 788
发帖 366
注册 2006-12-31 02:43
19年会员
UID 75048
性别 男
状态 离线
用.net等正则表达比较方便……

其实比较简单的方式是ping 一下……
正在潜水修练的批处理小白
10 发表于 2008-05-09 16:45 ·  中国 江苏 苏州 电信
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
我所做到只能匹配

findstr "*\.*\.*\.*"

如果想要精确匹配要写很长的,要等会
11 发表于 2008-05-09 16:50 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
1.2.3.4.5
1.2.3.4.
致精致简!
12 发表于 2008-05-09 16:55 ·  中国 江苏 苏州 电信
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
贴代码出来看看
13 发表于 2008-05-09 16:58 ·  中国 广东 广州 电信
高级用户
★★★
潜水修练批处理
积分 788
发帖 366
注册 2006-12-31 02:43
19年会员
UID 75048
性别 男
状态 离线
10楼的加上^ $ 限制一下
正在潜水修练的批处理小白
14 发表于 2008-05-09 16:58 ·  中国 上海 浦东新区 电信
中级用户
★★
积分 484
发帖 250
注册 2007-06-05 23:33
19年会员
UID 90372
性别 男
状态 离线
一直不知道findstr的正则支持哪些符号,所以一直没派上用场
至少试过好像是不支持{}和+的,用*的话位数就不能确定了,就没法精确匹配了
15 发表于 2008-05-09 17:01 ·  中国 广东 广州 电信
高级用户
★★★
潜水修练批处理
积分 788
发帖 366
注册 2006-12-31 02:43
19年会员
UID 75048
性别 男
状态 离线
Originally posted by pooronce at 2008-5-9 04:58 PM:
一直不知道findstr的正则支持哪些符号,所以一直没派上用场
至少试过好像是不支持{}和+的,用*的话位数就不能确定了,就没法精确匹配了


貌似就只有下面这些了

一般表达式的快速参考:
. 通配符: 任何字符
* 重复: 以前字符或类别出现零或零以上次数
^ 行位置: 行的开始
$ 行位置: 行的终点
字符类别: 任何在字符集中的字符
补字符类别: 任何不在字符集中的字符
范围: 在指定范围内的任何字符
\x Escape: 元字符 x 的文字用法
\<xyz 字位置: 字的开始
xyz\> 字位置: 字的结束
正在潜水修练的批处理小白
论坛跳转: