Easy COC DNS(CoC 国際版用簡易 DNS)
概要
本リポジトリ「easy_coc」は、game.clashofclans.com を sqbwiki.com の IP(README によれば 124.223.85.31)へ解決する、極めて簡素な DNS サーバです。Python スクリプト(dns_server.py)をルート権限で起動すると 0.0.0.0:53 をリッスンし、同一ネットワーク内のスマートフォン等に手動でPCの IP を DNS サーバとして設定することで、CoC(Clash of Clans)国際サーバへのアクセス先を上書きできます。ターゲットIPはスクリプト内の定数で管理され、変更やテストが容易ですが、正規の仕組みから外れた使い方になるため、利用は自己責任で行う必要があります。
リポジトリの統計情報
- スター数: 1
- フォーク数: 0
- ウォッチャー数: 1
- コミット数: 2
- ファイル数: 3
- メインの言語: Python
主な特徴
- 特定ドメイン(game.clashofclans.com)の A レコードをハードコードした IP に返す簡易 DNS。
- Python 単一スクリプトで実装、依存が少なく起動が容易(ただしポート53での待受に root 権限が必要)。
- 同一LAN内の端末で DNS を手動設定すれば、ゲームクライアントの接続先を書き換え可能。
- 実運用向けの堅牢性・セキュリティ機能は無し。テストや限定環境での利用が想定。
技術的なポイント
このプロジェクトは DNS プロトコルの最小限の仕組みを利用して特定ホスト名を別IPへ解決させる非常に直截的なアプローチを採っています。典型的には DNS は UDP(ポート53)を用いた問い合わせと応答で行われ、dns_server.py はソケットを介して受信したクエリパケットをパースし、問い合せ名が game.clashofclans.com の場合に手動設定した TARGET_IP を返すレスポンスを構築して返すよう実装されているはずです。実装上の留意点としては、低番号ポートで待ち受けるため root 権限が必要であること、DNS クエリのバリエーション(大文字小文字、末尾のドット付き/なし、サブドメイン等)を正しく扱う必要があること、UDP のパケット断片や TCP フォールバック(大きな応答に対する TCP 使用)に対処していない可能性が高い点があります。
運用面では、スマホなどを同一 Wi-Fi に接続し PC のローカル IP を DNS に設定する流れになります。これによりその端末からの DNS 参照がすべてローカル DNS を経由するため、アプリ側のキャッシュや OS 側のキャッシュ(TTL)の影響を受けます。sqbwiki.com の実IPが変わると dns_server.py 中の TARGET_IP を手動更新する必要があり、動的に解決したい場合はスクリプト内で upstream DNS を叩いて得た IP を利用したり、定期的に A レコードを取得して書き換えるロジックを追加するのが現実的です。
セキュリティと法的観点も重要です。DNS を偽装して通信先を差し替える行為はサービス提供者の利用規約に抵触する可能性があり、中間者的な振る舞いになるため他の端末やサービスに副作用を与える恐れがあります。また、スクリプト自体にアクセス制御やログ監査、応答の妥当性チェックが無い場合、不正な使い方や誤設定でネットワーク障害を引き起こす可能性もあります。拡張案としては、dnslib 等のライブラリを使った堅牢なパーサー導入、キャッシュと TTL の実装、複数ドメイン対応、自動でターゲットIPを解決・更新する仕組み、systemd ユニット化やコンテナ化による運用性向上、DNS over TLS/HTTPS を使うクライアントへも対応するプロキシの実装などが考えられます。デバッグ時は dig や nslookup での問合せ、tcpdump 等でパケットを確認すると問題箇所を特定しやすくなります。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- README.md: file
- dns_server.py: file
dns_server.py が本体で、ここに TARGET_IP の定義(README によれば第17行)やソケット処理、クエリ解析・レスポンス生成のロジックが含まれます。README は起動手順(sudo python3 dns_server.py)とクライアント側の DNS 設定方法(ipconfig/getifaddr で PC の IP を確認し、スマホの Wi‑Fi 設定で DNS を手動指定)を説明しています。
まとめ
単機能・低依存で手早く動かせる実験用 DNS リダイレクタ。運用は自己責任で。
リポジトリ情報:
- 名前: easy_coc
- 説明: 説明なし
- スター数: 1
- 言語: Python
- URL: https://github.com/JohanLi233/easy_coc
- オーナー: JohanLi233
- アバター: https://avatars.githubusercontent.com/u/36754809?v=4
READMEの抜粋:
Easy COC DNS
将 game.clashofclans.com 映射到 sqbwiki.com 的简单 DNS 服务器,用于玩 COC 国际服。
使用方法
1. 启动服务器
sudo python3 dns_server.py
服务器会在 0.0.0.0:53 监听。
2. 手机配置 DNS
- 查看本机 IP:
ipconfig getifaddr en0 - 手机连接同一 WiFi,修改网络设置:
- DNS 服务器设置为你的电脑 IP(如
192.168.1.13)
- DNS 服务器设置为你的电脑 IP(如
3. 测试
访问 game.clashofclans.com,会被解析到 124.223.85.31(sqbwiki.com 的 IP)。
IP 变更
如果 sqbwiki.com 的 IP 变化了,编辑 dns_server.py 第 17 行:
TARGET_IP = "新IP"