npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

dnssweeper-cli

v0.1.0

Published

CLI tool for detecting and analyzing unused DNS records

Readme

🔍 DNSweeper CLI

Test CI npm version npm downloads License: MIT Node.js Version Security Policy

未使用のDNSレコードを検出・分析するコマンドラインツール

🎯 概要

DNSweeper CLIは、CloudflareなどのDNSサービスからエクスポートしたCSVファイルを分析し、未使用の可能性が高いDNSレコードを検出するツールです。

主な機能

  • 📊 パターンマッチング分析: 危険なプレフィックス・サフィックス・キーワードを検出
  • 🎨 色付き出力: リスクレベル別に色分けされた見やすい表示
  • 📋 複数出力形式: table、JSON、CSV形式での出力
  • 🌐 多言語対応: 日本語・英語の両方に対応
  • 高速処理: 大規模なCSVファイルも効率的に処理
  • 🔒 読み取り専用: 安全な分析(レコードの削除・変更は行わない)

🚀 インストール

npm経由でのインストール

npm install -g dnssweeper-cli

直接実行(npx)

npx dnssweeper-cli analyze your-dns-records.csv

📊 リスクレベル

DNSweeper CLIは以下の5段階でリスクを評価します:

| レベル | スコア範囲 | 説明 | 表示色 | |--------|------------|------|--------| | 🔴 Critical | 90-100 | 即座に削除を検討すべきレコード | 赤 | | 🟠 High | 70-89 | 削除の検討を推奨するレコード | オレンジ | | 🟡 Medium | 50-69 | 注意が必要なレコード | 黄 | | 🟢 Low | 30-49 | 軽微な注意点があるレコード | 緑 | | ⚪ Safe | 0-29 | 問題のないレコード | グレー |

📖 使用方法

基本的な使用法

# CSVファイルを分析
dnssweeper analyze dns-records.csv

# 詳細な出力
dnssweeper analyze dns-records.csv --verbose

# 英語モードで実行
dnssweeper analyze dns-records.csv --english

出力形式の指定

# テーブル形式(デフォルト)
dnssweeper analyze dns-records.csv --output table

# JSON形式
dnssweeper analyze dns-records.csv --output json

# CSV形式
dnssweeper analyze dns-records.csv --output csv

リスクレベルフィルタリング

# 高リスク以上のレコードのみ表示
dnssweeper analyze dns-records.csv --risk-level high

# クリティカルなレコードのみ表示
dnssweeper analyze dns-records.csv --risk-level critical

結果をファイルに保存

# 分析結果を運用フロー対応CSVファイルに保存
dnssweeper analyze dns-records.csv --output-file results.csv

🛠️ オプション

| オプション | 短縮形 | 説明 | デフォルト値 | |-----------|--------|------|-------------| | --output | -o | 出力形式 (table/json/csv) | table | | --verbose | -v | 詳細な出力を表示 | false | | --english | -e | 英語モードで実行 | false | | --risk-level | -r | 指定リスクレベル以上のレコードのみ表示 | なし | | --output-file | -f | 結果をファイルに保存 | なし | | --help | -h | ヘルプメッセージを表示 | - | | --version | -V | バージョンを表示 | - |

🎨 出力例

テーブル形式(デフォルト)

🔍 DNSweeper CLI - DNS レコード分析ツール

📊 分析結果サマリー
総レコード数: 150
処理時間: 0.05秒

🎯 リスク分布:
🔴 Critical: 2件 (1.3%)
🟠 High: 8件 (5.3%)
🟡 Medium: 15件 (10.0%)
🟢 Low: 25件 (16.7%)
⚪ Safe: 100件 (66.7%)

📋 詳細分析結果
┌─────────────────────────────────────┬─────────┬─────────┬────────────┬─────────────────────────────────────┐
│ Name                                │ Type    │ Risk    │ Score      │ Reason                              │
├─────────────────────────────────────┼─────────┼─────────┼────────────┼─────────────────────────────────────┤
│ old-api.example.com                 │ A       │ 🔴 Critical │ 95        │ 危険なプレフィックス「old-」が検出   │
│ test-server.example.com             │ A       │ 🟠 High     │ 80        │ 危険なプレフィックス「test-」が検出  │
└─────────────────────────────────────┴─────────┴─────────┴────────────┴─────────────────────────────────────┘

✅ 実行完了: 0.05秒

🔧 対応するCSV形式

DNSweeper CLIは以下の形式のCSVファイルに対応しています:

Cloudflare形式(推奨)

Name,Type,Content,TTL,Proxied,Created,Modified
example.com,A,192.168.1.1,300,false,2024-01-01,2024-01-01
www.example.com,CNAME,example.com,300,true,2024-01-01,2024-01-01

必須フィールド

  • Name: DNSレコード名
  • Type: レコードタイプ(A、AAAA、CNAME、MX、TXT、SRV、PTR、NS)
  • Content: レコードの値
  • TTL: Time To Live

🗓️ 月次DNS棚卸しガイド

段階的ハイブリッド方式での運用フロー

Phase 1: 高リスクレコード抽出(5分)

# 1. 高リスクレコードを抽出
dnssweeper analyze cloudflare-export.csv --risk-level=high --output-file=monthly-audit.csv

# 2. 結果確認  
echo "抽出完了: monthly-audit.csv"

Phase 2: Cloudflare UI確認(30分)

  1. monthly-audit.csvを開く
  2. 各レコードについてCloudflare UIで使用状況を確認:
    • Analytics → トラフィック確認
    • Security → ファイアウォールログ確認
    • Caching → キャッシュヒット状況確認
  3. CSV の「使用状況確認」列に結果を記入:
    • USED - 使用されている
    • UNUSED - 使用されていない
    • UNCLEAR - 判断不明

Phase 3: 削除判断と実行(30分)

  1. 「削除判断」列に決定を記入:
    • DELETE - 削除対象
    • KEEP - 保持
    • LATER - 後で再確認
  2. 削除対象レコードをCloudflare UIで削除
  3. 「削除実行日」列に実行日を記入
  4. 完了したCSVファイルを保存(監査証跡として)

効果測定

  • 作業時間: 従来の手動確認(2-3時間)→ 1時間に短縮
  • 見落とし防止: パターンベース自動検出で100%カバー
  • 監査証跡: CSVファイルで削除履歴を完全保持

🧪 開発・テスト

開発環境のセットアップ

# リポジトリをクローン
git clone https://github.com/your-username/dnssweeper-cli.git
cd dnssweeper-cli

# 依存関係をインストール
npm install

# 開発モードで実行
npm run dev -- analyze test-data/normal-records-50.csv

テストの実行

# 全テストを実行
npm test

# テストカバレッジを確認
npm run test:coverage

# 型チェック
npm run type-check

# コードフォーマット
npm run format

# Lint
npm run lint

🤝 貢献

プルリクエストや Issue の報告を歓迎します!

開発ガイドライン

  1. すべてのコメントは日本語で記述してください
  2. TypeScript の strict モードを使用してください
  3. テストカバレッジは80%以上を維持してください
  4. 読み取り専用操作のみを実装してください(削除・変更機能は禁止)

📄 ライセンス

MIT License

🚨 セキュリティ

このツールは読み取り専用です。DNSレコードの削除や変更は一切行いません。

  • APIキーや認証情報の送信は行いません
  • ローカルでのファイル解析のみを実行します
  • 分析結果の外部送信は行いません

🆘 サポート

問題やバグを発見した場合は、GitHub Issuesに報告してください。

📝 更新履歴

v1.0.0 (2025-07-10)

  • 初回リリース
  • 基本的な DNS レコード分析機能
  • パターンマッチング機能
  • 多言語対応(日本語・英語)
  • 複数出力形式対応

💡 ヒント: 月次のDNS棚卸しに最適です!定期的に実行してDNSレコードをクリーンに保ちましょう。