怎么判断一个IP地址是否在规定范围内
主 题: 怎么判断一个IP地址是否在规定范围内
作 者: AndersJackie (Anders)
等 级: ^
信 誉 值: 100
所属论坛: .NET技术 C#
问题点数: 20
回复次数: 8
发表时间: 2003-9-28 15:53:03
怎么判断一个IP地址是否在规定范围内,如111.111.111.2
在111.111.111.1 - 111.111.113.21
内
回复人: kuangren(今天逃课~) ( 三级(初级)) 信誉:100 2003-9-28 16:26:24 得分:0
用正则表达式判断啊,在csdn里面有~你search下就可以找到了
回复人: eplox(090-7523-38**) ( 一级(初级)) 信誉:100 2003-9-28 16:35:05 得分:0
我也刚开始学C#不久,我想是不是可以先将地址分割,然后在比较.
string [] myStr;
myStr = textbox.Text.Trim().Split('.');
然后用Int.Parse(myStr[i])
同你的范围进行比较
例如;Int.Parse(myStr[i])>111 && Int.Parse(myStr[i])<222
回复人: eplox(090-7523-38**) ( 一级(初级)) 信誉:100 2003-9-28 16:36:40 得分:0
对了,用正则表达式也许更简单一些
回复人: changezhong(小刀) ( 二级(初级)) 信誉:100 2003-9-28 17:25:35 得分:0
用正则表达式一般是验证输入的正确性,例如验证输入是否为IP
对输入范围的验证建议采用 eplox(Sam) 的方法,不过逻辑写的不全
如果给了一个范围111.111.111.1 - 111.111.113.21
,这样写
string [] myStr;
myStr = textbox.Text.Trim().Split('.');
if(Int.Parse(myStr[2])<111 && Int.Parse(myStr[2])>113)
MessageBox("超出范围")
if(Int.Parse(myStr[3])<1 && Int.Parse(myStr[3])>21)
MessageBox("超出范围")
原则是从高位到低为比较
回复人: AndersJackie(Anders) ( 一级(初级)) 信誉:100 2003-9-28 17:32:41 得分:0
通用一些的,范围不是特别具体
回复人: chestnuts(c# Sharp) ( 四级(中级)) 信誉:100 2003-9-28 17:40:14 得分:0
???
不明白楼上说的通用是什么意思~
回复人: eplox(090-7523-38**) ( 一级(初级)) 信誉:100 2003-9-28 17:54:34 得分:0
伙计,你得自己动手啊,把上面的内容整理一下,自己写一个BOOL函数,把用户输入的IP 和开始IP已及结束IP作为3个参数传进去,然后返回TRUE 或FALSE 不就行了吗,以后你可以在程序的任何地方随时的调用它!
这还不通用吗?
回复人: changezhong(小刀) ( 二级(初级)) 信誉:100 2003-9-28 18:10:14 得分:20
不好意思,我试了一下,我的方法好象不行
最好的方法就是将IP全部转化为16进制,然后连起来,然后比较,例:IPfrom=111.111.111.1=6F.6F.6F.1
连起来6F6F6F01
转化为十进制1869573889
IPTo方法类似
然后比较大小
该问题已经结贴 ,得分记录: changezhong (20)、