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

如何从C2Intel Feeds的CSV文件中提取指定IP所在行?

从C2Intel Feeds CSV中提取含指定IP的行

方案1:快速逐行匹配(适合无复杂字段的CSV)

直接远程获取文件内容,拆分字段后检查目标IP,避免部分匹配:

import requests

target_ip = "54.161.191.72"
csv_url = "https://raw.githubusercontent.com/drb-ra/C2IntelFeeds/master/feeds/domainC2swithURLwithIP-filter-abused.csv"

# 获取远程CSV内容
resp = requests.get(csv_url)
resp.raise_for_status()  # 抛出请求错误,方便排查问题

# 逐行处理
for line in resp.text.splitlines():
    # 拆分字段后检查IP,避免匹配到类似54.161.191.720的部分IP
    if target_ip in line.split(","):
        print(line)

方案2:用csv模块规范处理(兼容带特殊字符的CSV)

如果CSV存在字段内包含逗号的情况(示例中没有,但通用场景更可靠),用csv模块自动解析可变长度的行:

import requests
import csv
from io import StringIO

target_ip = "54.161.191.72"
csv_url = "https://raw.githubusercontent.com/drb-ra/C2IntelFeeds/master/feeds/domainC2swithURLwithIP-filter-abused.csv"

resp = requests.get(csv_url)
resp.raise_for_status()

# 将响应转为可读取的文本流
csv_stream = StringIO(resp.text)
reader = csv.reader(csv_stream)

for row in reader:
    if target_ip in row:
        # 重新拼接成CSV格式输出
        print(",".join(row))

常见错误排查

  • 之前代码出错大概率是这几个原因:
    • 未处理网络请求异常,添加resp.raise_for_status()能快速定位连接、404等问题
    • 直接用target_ip in line导致部分IP匹配(比如把54.161.191.721的行误判),必须拆分字段后检查
    • 手动处理换行符出错,用splitlines()或csv模块可避免

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 23:22:03