You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取IPAddressesTEST.log中指定语句后的IPv6地址信息?

问题分析与解决方案

原代码的问题

原代码将每行字符串转为迭代器后遍历,实际是逐个遍历字符,不可能匹配到完整的Connected IPv6's:字符串,这是导致代码失效的核心原因。

正确实现方式

方式1:前缀匹配提取

直接遍历日志每行,判断是否包含目标前缀,提取前缀后的IPv6地址:

target_prefix = "Connected IPv6's:"
with open('C:/test/IPAddressesTEST.log', "rt") as ip_log:
    for line in ip_log:
        line = line.strip()  # 去除首尾空白与换行符
        if line.startswith(target_prefix):
            # 截取前缀后的内容并清理空格
            ipv6_addr = line[len(target_prefix):].strip()
            print(ipv6_addr)
            break  # 仅提取第一个匹配项,若需全部匹配可删除此行

方式2:正则表达式匹配(更灵活)

如果前缀与IPv6地址间的空格不固定,用正则适配更多格式:

import re

# 匹配前缀后任意空格+IPv6地址的模式
pattern = r"Connected IPv6's:\s*(.*)"
with open('C:/test/IPAddressesTEST.log', "rt") as ip_log:
    for line in ip_log:
        match_result = re.search(pattern, line)
        if match_result:
            ipv6_addr = match_result.group(1).strip()
            print(ipv6_addr)
            break

补充说明

  • 方式1逻辑简单,适合前缀固定且与IPv6地址同行的场景。
  • 方式2通过正则可处理前缀与地址间的任意空白字符,兼容性更强。

内容的提问来源于stack exchange,提问作者Icewolf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 04:00:37