|
Постоянный
Регистрация: 30.08.2011
Сообщений: 358
С нами:
7738166
Репутация:
11
|
|
Генератор тел. номеров для мск. Perl скрипт сделан на основе статистики с авито. Выдача отсортирована в соответствии с частотой встречаемости того или иного префикса в объявлениях, и покрывает примерно 96% номеров авито мск.
Если нужны дополнительные префиксы - можно указать в командной строке, например perl script.pl 8 +7, на выходе будет
9262000000
89262000000
+79262000000
9262000001 и т.д.
Код:
use strict;
# usage this.pl 8 +7 где 8, +7 доп. префиксы
my $fname=''; # my $fname='tel.numbers.continue.txt';
my @arr=(9262,9265,9263,9166,9161,9261,9037,9031,9165,9104,9055,9035,9032,9163,9057,9167,9162,9168,9169,9164,9266,9267,9269,9151,9268,
9175,9099,9152,9296,9264,9036,9067,9153,9160,9260,9851,9150,9629,9852,9250,9096,9154,9636,9258,9060,9651,9257,9295,9251,9652,
9299,9253,9857,9653,9854,9645,9859,9252,9670,9853,9647,9687,9254,9255,9672,9686,9671,9689,9197,9637,9039,9654,9858,9688,9684,
9680,9199,9856,9639,9030,9685,9660,9256,9259,9646,9091,9773,9683,4957,9661,4959,4997,9100,9663,9191,9998,4956,9999,4953,9850,4952);
my $fd;
my $startFrom=0;
if($fname and open $fd, $fname){$startFrom=; close $fd;}
for my $pref(@arr){
next if $startFrom && $pref!=$startFrom;
$startFrom=0;
if($fname and open $fd, ">$fname"){print $fd $pref; close $fd;}
for my $post(0..999999){
my $lastText=sprintf "%06d",$post;
my $tel=$pref.$lastText."\n";
print $tel;
print $_.$tel for @ARGV;
}
}
unlink $fname if $fname;
|