86 lines
5.5 KiB
HTML
86 lines
5.5 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<meta name="renderer" content="webkit">
|
||
<script>(function(){var t;try{t=localStorage.getItem("hp-theme")}catch(e){}if(!t){t=(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches)?"dark":"light"}document.documentElement.setAttribute("data-theme",t);})();</script>
|
||
<title>IP 地址处理</title>
|
||
<link rel="icon" href="../assets/img/logo.svg">
|
||
<link rel="stylesheet" href="../assets/css/common.css">
|
||
</head>
|
||
<body>
|
||
<div class="func-bar"><div class="wrap func-bar-inner">
|
||
<a class="btn btn-sm js-fb-back" href="index.php" title="返回功能区首页">← 返回功能区首页</a>
|
||
<span class="func-bar-title">IP 地址处理</span>
|
||
<a class="btn btn-sm" href="../index.php">首页</a>
|
||
</div></div>
|
||
|
||
<main class="page-main">
|
||
<div class="wrap page-body">
|
||
<div class="panel-card">
|
||
<p class="tip" style="margin-top:0">🔒 粘贴的日志 / 上传的文本文件<b>全部在本机浏览器内解析</b>,不会上传到服务器,可放心处理大文件(≤ 20MB 由浏览器本地读取)。</p>
|
||
<h2>使用说明</h2>
|
||
<p class="tip">粘贴任意日志 / 文本,或直接<b>上传文本文件</b>(txt / json / log / md / csv / conf / ini,≤ 20MB),
|
||
系统提取其中全部 <strong>IPv4</strong>(IPv6 暂不参与),按 <strong>/24 段</strong>聚合:
|
||
每段一行 <code>IP段 / 发现数量 / IP段性质 / 出现次数</code>——发现数量为该段内<strong>去重后的 IP 个数</strong>,
|
||
出现次数为该段内全部 IP 在原文中的<strong>出现总次数</strong>;段行下方依次列出该段具体 IP,并标注<b>每个 IP 的出现次数</b>:<code>具体IP / 出现次数</code>,段与段之间空一行分隔。
|
||
各 /24 段默认按<b>出现次数从高到低排列</b>;段性质按 <strong>内网(含保留)/ CDN / 公网</strong> 区分。
|
||
若填写「重点匹配 IP」,命中其所在的 /24 段会<strong>优先置顶</strong>,并在预览结果中用<strong>红色</strong>标出该 IP;结果可一键复制或导出为 txt(纯文本不含颜色)。</p>
|
||
<label class="fl" for="ipInput">待分析文本(可直接粘贴,也可在上方上传文件载入)</label>
|
||
<textarea id="ipInput" rows="12" placeholder="粘贴防火墙 / nginx / 安全设备日志等包含 IP 的内容…"></textarea>
|
||
<div class="field-row" style="margin-top:8px;align-items:center;flex-wrap:wrap">
|
||
<input type="file" id="ipFile" accept=".txt,.json,.log,.md,.csv,.conf,.ini" style="flex:1 1 280px;min-width:220px">
|
||
<span class="tip" style="align-self:center">选择 txt / json / log 等文本文件,读取后自动填入并分析</span>
|
||
</div>
|
||
<label class="fl" for="ipFocus" style="margin-top:12px">重点匹配 IP(可选,多个用空格 / 逗号 / 换行分隔)</label>
|
||
<input type="text" id="ipFocus" placeholder="如 8.8.8.8 104.16.1.18;命中该 IP 的 /24 段将优先置顶展示,并将对应 IP 标红">
|
||
<div class="field-row" style="margin-top:10px">
|
||
<button type="button" class="btn btn-primary" id="ipBtn">分析</button>
|
||
<button type="button" class="btn" id="ipClear">清空</button>
|
||
<span class="tip" style="align-self:center">支持 Ctrl / Cmd + Enter 快速分析</span>
|
||
</div>
|
||
<div id="ipMsg"></div>
|
||
</div>
|
||
|
||
<div id="ipResult" hidden>
|
||
<div class="panel-card">
|
||
<div class="field-row" style="align-items:center;justify-content:space-between;flex-wrap:wrap">
|
||
<h2 style="margin:0">识别结果</h2>
|
||
<span class="ops" style="display:flex;gap:8px">
|
||
<button type="button" class="btn btn-sm" id="ipExport">⬇ 导出 TXT</button>
|
||
<button type="button" class="btn btn-sm" id="ipCopy">复制结果</button>
|
||
</span>
|
||
</div>
|
||
<div id="ipPreview" class="ip-pre"></div>
|
||
<p class="tip" id="ipStat" style="margin:8px 0"></p>
|
||
<p class="tip">段行为 <code>IP段 / 发现数量 / 性质 / 出现次数</code>(出现次数为段内全部 IP 原文出现次数之和);具体 IP 行为 <code>IP / 出现次数</code>。段按出现次数降序排列,含重点 IP 的段置顶;复制或导出的纯文本不含颜色。若 /24 段内混有不同性质,按数量多者标注“xx为主(混合)”。CDN 段库为页面内置默认,可用文本编辑器在本 HTML 文件的 <code>ipCdnRaw</code> 中增补厂商。</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</main>
|
||
|
||
<textarea id="ipCdnRaw" hidden># 内置默认:Cloudflare 官方 IPv4 段(可在本 HTML 的 ipCdnRaw 内补充其它厂商,每行:CIDR + 空格 + 厂商名;# 开头为注释)
|
||
103.21.244.0/22 Cloudflare
|
||
103.22.200.0/22 Cloudflare
|
||
103.31.4.0/22 Cloudflare
|
||
104.16.0.0/13 Cloudflare
|
||
104.24.0.0/14 Cloudflare
|
||
108.162.192.0/18 Cloudflare
|
||
131.0.72.0/22 Cloudflare
|
||
141.101.64.0/18 Cloudflare
|
||
162.158.0.0/15 Cloudflare
|
||
172.64.0.0/13 Cloudflare
|
||
173.245.48.0/20 Cloudflare
|
||
188.114.96.0/20 Cloudflare
|
||
190.93.240.0/20 Cloudflare
|
||
197.234.240.0/22 Cloudflare
|
||
198.41.128.0/17 Cloudflare</textarea>
|
||
|
||
<button type="button" class="theme-fab js-theme-btn" title="切换昼夜模式" aria-label="切换昼夜模式"><span class="js-theme-icon"></span></button>
|
||
<button type="button" class="theme-fab to-top js-to-top" title="返回顶部" aria-label="返回顶部">↑</button>
|
||
<script src="../assets/js/common.js"></script>
|
||
<script src="../assets/js/ip.js"></script>
|
||
</body>
|
||
</html>
|