NewHome/func/ip.html

86 lines
5.5 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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>