ロシアの都市の電話コードに関する現在のデータ

多くのアプリケーションでは、ロシアの都市の電話コードに関する最新のデータが必要です。 インターネットで検索すると、次の悲しい結果につながります。都市コードがレイアウトされている疑わしいリソースがたくさんありますが、それらの関連性と信頼性は望まれるものが多いか、不明です。 特定の都市のコードを提供するオンラインサービスがあります。 これを使用することもできますが、数万件のリクエストを手動で実行することは誰にとっても楽しいことではありません。



実際、この情報の主な情報源は、連邦通信庁Rossvyazであり、現在の電話番号に関する情報を掲載しています。 これらのファイルの名前は、人工知能の基礎によって重くされた検索エンジンでさえ、アクティブな電話コードのリストの検索者向けの典型的な検索フレーズを使用してこの魔法のページを表示できないようにするためです-「ロシアのシステムおよび番号計画のレジストリから抽出」。



現在、各部門はオープンな情報を共有する義務があるため、これらのファイルは代理店によって一般にアップロードされることを余儀なくされていますが、裕福な市民や大手企業を「個別に支援する」という役人の習慣により、これらのファイルにつまずくのも簡単ではありませんこのファイルのロシア連邦のすべての入植地の電話コードは3桁です。 正確に3桁で構成されています!



これらのファイルの2番目の欠点は、ロシアの入植地の名前が信号機自身によって考案され、郵便サービスで使用される名前と一致しないことです(KLADRデータベースは多くの人に知られています)。 おそらく、集落の命名のいくつかのソースがまだありますが、私はKLADRのデータに依存していました。 このため、このデータを都市のリストと組み合わせる場合、特定の不整合を手動で書き留めて、少し汗をかかなければなりません。



結果のデータをmysqlテーブルの形式で取得する必要があるため、必要なデータを取得するコードをMysqlで作成しました。



特定のコードは、おそらくそのような記事の形式を超えているため、アルゴリズムといくつかの「落とし穴」について説明します。 おそらく、これは読者にとってプラスになるでしょう。 より便利で使いやすい環境でアルゴリズムを実装できます。



最初に、ファイルからデータをインポートします(LOAD DATA INFILEコマンド)。



代理店は既に電話コードの最初の3桁を親切に提供しているため、残りの番号をキャッチして、これらを最初の3桁に追加することがタスクです。



ファイルの各行には、3桁の都市コードに加えて、7桁の数字の範囲、それが割り当てられている法人、および決済が含まれています。 必要なコードの桁数は3〜6であることが知られています。また、1つの地域に割り当てられた電話コードは2つ以下であることが知られています。



各地域について、3桁のコードの後に​​あるすべての範囲の番号で最初に来る「変動性」(異なる桁の数)を計算します。 同時に、4桁のコード(右側の3桁のコードに範囲の最初の桁を追加したもの)、5桁のコード、および6桁のコードについても同様に計算します。



この言葉遣いを例を使用して詳細に説明します。 都市コードのベルツク、ノボシビルスク州に5桁-38341が含まれる場合、この都市のすべての電話番号が7桁形式で提示される場合、最初の2桁は常に2桁-41になります。しかし、3桁にはすでに複数のオプションが含まれます(3つ以上のオプションから) 、都市に2つの電話コードがあるかもしれないと仮定して)!



実際、これがアルゴリズムの主要部分です。 アルゴリズムは理論的な観点からは理想的ではありません。決済で利用可能なすべての番号に最初の数字の2つのバリアントしか含まれていない場合、このアプローチではエラーが発生することは明らかです。1つのコードではなく、決済には2



落とし穴



このリクエストの前に、ゴミからデータを消去するリクエストがあります。 機関ファイル内の同じ地域、地区、および集落は、必ずしも完全に文脈的に同一ではありません。 どこかにタブがあります。 エリアの名前が欠落している場所など たとえば、コードが3で始まるファイルの場合、私の要求には約20行が含まれているため、これらすべての状況のキャッチは複雑ではありません。



ファイルには、地域参照を持たないコード、800、携帯電話事業者に割り当てられたコード、および有料番号のコードが含まれていることに注意してください。 上記のリクエストから除外するのが論理的です。



アルゴリズムの理論的な欠陥のため、スキームに検証要求を追加することは非常に合理的です-取得したデータを既に所有しているディレクトリと比較し、オンラインサービスを介して個々の決済についてランダムチェックを実行します。 計算された都市コードが間違っている場合は、別の追加リクエストでそれらを削除できます。



ファイル内の「ガベージクリーニング」の必要性と、この「ガベージ」の構成の違いにより、ファイルごとにクリーニングリクエストを個別に書き込む方が適切です。 また、10月のデータを一度しか使用しなかったため、ファイルの「ゴミ」の構成を歴史的に変更する問題については調査していません。 政府機関がファイルを更新する際にロシアの都市の電話コードを更新するプロセスを完全に自動化しようとすると、時間内に「ゴミ」の高レベルのばらつきが発生し、プロセスを完全に自動化しようとします。



おわりに



私の記事が誰かの問題の解決に少し役立つことを願っています。 また、ロシアのすべての集落での3桁のコードの理由と、このデータの性質上論理的に同一であるはずのテキスト(地域、地域、および集落の名前)の高度なばらつきの理由について、機関のプログラマーの意見を聞くことも興味深いでしょう。



PS私の仕事の一環として、国際コードについて同様の要求を行いました。 しかし、パブリックドメインでこのデータを見つけることができず、IPテレフォニーオペレータの1人の「知り合いによる」ダイヤルプランを受け取ったため、手順を説明するのは無意味です。 彼の説明から、別の通信事業者が独自のダイヤルプランを持ち、それに応じてコードを分離するという独自のニュアンスを持つことになりました。



All Articles