dnssweeper-cli
v0.1.0
Published
CLI tool for detecting and analyzing unused DNS records
Maintainers
Readme
🔍 DNSweeper CLI
未使用の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分)
- monthly-audit.csvを開く
- 各レコードについてCloudflare UIで使用状況を確認:
- Analytics → トラフィック確認
- Security → ファイアウォールログ確認
- Caching → キャッシュヒット状況確認
- CSV の「使用状況確認」列に結果を記入:
USED- 使用されているUNUSED- 使用されていないUNCLEAR- 判断不明
Phase 3: 削除判断と実行(30分)
- 「削除判断」列に決定を記入:
DELETE- 削除対象KEEP- 保持LATER- 後で再確認
- 削除対象レコードをCloudflare UIで削除
- 「削除実行日」列に実行日を記入
- 完了した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 の報告を歓迎します!
開発ガイドライン
- すべてのコメントは日本語で記述してください
- TypeScript の strict モードを使用してください
- テストカバレッジは80%以上を維持してください
- 読み取り専用操作のみを実装してください(削除・変更機能は禁止)
📄 ライセンス
🚨 セキュリティ
このツールは読み取り専用です。DNSレコードの削除や変更は一切行いません。
- APIキーや認証情報の送信は行いません
- ローカルでのファイル解析のみを実行します
- 分析結果の外部送信は行いません
🆘 サポート
問題やバグを発見した場合は、GitHub Issuesに報告してください。
📝 更新履歴
v1.0.0 (2025-07-10)
- 初回リリース
- 基本的な DNS レコード分析機能
- パターンマッチング機能
- 多言語対応(日本語・英語)
- 複数出力形式対応
💡 ヒント: 月次のDNS棚卸しに最適です!定期的に実行してDNSレコードをクリーンに保ちましょう。
