如何从字符串中提取 ip 地址(不用正则)

在网上搜如何从字符串中提取 ip 地址,出来的全都是正则的实现。我想找一个不用正则的实现,支持 IPv4 和 IPv6 的提取,请大佬们指条明道

相关文章

22 thoughts on “如何从字符串中提取 ip 地址(不用正则)

  1. emmm,先生成 1.1.1.1 到 255.255.255.255 的所有有可能的 ipv4 地址入库,然后再进行文本循环匹配,欧耶

  2. emm…不熟悉正则还是怎么的。实现需求来说,搜索引擎答案大多推荐一个方案那么他是比较好实现且坑少,方案成熟,有 bug 也容易修复,不熟悉可以学习。如果单纯自己学习,尝试其他方法实现,应该可以造轮子,写一个算法获取字符串中的所有 0-9 和.的子字符串,每个进行 IP 规则匹配就行(.分割后 0~255 等规则)

  3. IPV4 匹配 字符串 “.” , 然后搜该 “.” 的下 1-3 位字符是不是(0-255)的数字,如此循环匹配 3 次
    IPV6 匹配 字符串 “:” , 同上,缩写匹配字符串 “::”

  4. 炼丹,生成随机假文本,然后随机在假文本中插入 IP 地址,最后一股脑喂给一个三层的网络,运气好的话比雇几个老头老太太要准一点

  5. @Hyseen 目前是这个想法,不知道工作量大不大,太大我就放弃了,牺牲计算机 cpu 来换我不秃头

    @netnr 的确,目前关研究这个事就够烦人的了

    @chinvo 炼金师 VS 老太太

    @jjplay 实际深入到细节,还是有一些坑

    @oneisall8955 目前用的正则,已经能够实现目前的需求了,但是我想重构后让我的程序功能和效率更加强大一些,也算是学习了吧

    @xiri @leishi1313 我不想用递归下降了,我想查表

    @lxilu 有这个想法了

  6. @dtgxx 不太清楚流式处理,搜了一下跟批处理相对应?我的意思是数据的输入是流式的,就像用户用键盘输入内容一样,程序获取到的是字节流,程序的目标是对原始输入只 scan 一次,one pass 的那种感觉,及时记录状态和相关信息,尽量不回过头来再读取一遍,对前面已经分析过并且无用的信息就丢弃掉,运行时内存占用也小

    @ysc3839 一会中午去借本书再复习一下编译原理,哭

发表评论

电子邮件地址不会被公开。 必填项已用*标注