【算法讨论】求思路 如何判断一个IP是否在某网段内

admin 2021年4月2日19:32:21评论153 views字数 977阅读3分15秒阅读模式

求思路 如何判断一个IP是否在某网段内

whirlwind (别人笑,不去想,我就为你而倔强.除了你,都一样,不能放,害怕丢失唯一的信仰.你在我永远到不了的地方!) | 2013-11-05 00:10

我的思路是

1.AAA.BBB.CCC.DDD-aaa.bbb.ccc.ddd

拆分成数组,一个一个比较

1.IP==边界

2.比较AAA,如果不同 且在范围内 返回1

然后比较BBB 如果不同 且在范围内 返回1

如果BBB相同 比较CCC 如果不同 且在范围内 返回1

如果CCC相同 比较DDD 如果不同 且在范围内 返回1

否则返回0

这块是不是可以递归调用下??

有啥好的算法啊,我感觉这样判断也忒麻烦了吧。。PHP。。

比如CSDN上看到 有人直接去掉. 然后比大小。。不过位数问题哇。。

大牛勿喷。。小弟连芝诺的乌龟问题刚才都没想明白呢。。

[原文地址]

相关讨论:

1#

Hydra | 2013-11-05 02:20

ip可以做成int去判断

2#

核攻击 (统治全球,奴役全人类!毁灭任何胆敢阻拦的有机生物!) | 2013-11-05 11:26

建议楼主了解下ip格式的基本知识。

a.b.c.d 8.8.8.8 192.168.1.1 192.168.1.255

这种叫“点分十进制”表示格式,主要是为了方便人类阅读与理解。

还有另外其他几种格式,例如十进制格式:

192.168.1.1 = 192*256*256*256 + 168*256*256 + 1*256 + 1 = 3232235777 (十六进制:C0A80101)
192.168.2.255 = 192*256*256*256 + 168*256*256 + 2*256 + 255 = 3232236287 (十六进制:C0A802FF)

那么要判断范围就相当简单了,例如:192.168.1.1 - 192.168.2.255

if ip_int > 3232235777 and ip_int 

3#

whirlwind (别人笑,不去想,我就为你而倔强.除了你,都一样,不能放,害怕丢失唯一的信仰.你在我永远到不了的地方!) | 2013-11-05 20:02

@核攻击

真机智。。非常感谢哇,哈哈

留言评论(旧系统):

佚名 @ 2013-11-06 23:56:14

编程编傻了.... 有时候一个挺简单的问题,会导致思维混乱,结果就给弄复杂了.

本站回复:

真·程序猿也……

文章来源于lcx.cc:【算法讨论】求思路 如何判断一个IP是否在某网段内

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年4月2日19:32:21
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【算法讨论】求思路 如何判断一个IP是否在某网段内http://cn-sec.com/archives/316016.html

发表评论

匿名网友 填写信息