Open moznion opened 11 years ago
現在はマッチするリージョンのサーバーが見つからない場合は、フォールバックして適当に (いい加減に) サーバーをアサインしているので、致命的な事態にはならないので優先度は比較的低めで良いと思います
考えられる方法として、
というのがパッと思いつきますが、どれくらい (通信) コストがかかるのかが見積もれないので、要検討な感じがします。
何か良い方法があればお願いします。
とりあえずNet::DNSあたりつかって、ホストのAレコード引っ張ってきますかー。 で、IPアドレスからお国を判断(IP::Countryで引っ張れる)して、最寄りのホストを洗い出す、というかんじでどうでしょう。
https://github.com/ytnobody/Ipsefact/blob/master/lib/Ipsefact.pm
↑あたりでIP::Countryつかって国コード引っ張ってきてるんで、参考になるかなーと
良いですね。ちょっと実装してみます。
現状の方法だとftp サーバのアドレスの国別ドメインを取得して、それをベースに最速のミラー (同じリージョンのミラー) をピックアップしてきていますが、いくつか問題があります。
と、色々なルールが混在していて、現状の方法 (正規表現1ルールでなんとかするぜ、という方法) では結構面倒くさい感じです。
などなど、そもそも国別ドメインが存在しないものもあります。 これらに関しては現状の方法では対応することがままなりません。