Перейти к содержимому
Калькуляторы

[решено] Узнать все подсети vkontakte

Как быстро узнать все подсети , например, vkontakte? Может ресурc какой есть под это? Ковырять вручную https://apps.db.ripe.net/search/query.html#resultsAnchor - долго.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У них свои AS. Дальше через райп

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

т.е. по-старинке ковырять райп. ок.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

whois -i origin AS_VK1

whois -i origin AS_VK2

 

у них вроде бы 2 AS, номера не помню, сами легко найдёте

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

s.lobanov, спасибо за подсказку.

The RIPE Database whois client has several options... для истории.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

disappointed, вот прям то что надо. Огромаднейшее спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

disappointed

saaremaa

 

зачем пользоваться леваком, когда можно делать прямые запросы к первоисточнику, а именно в базам RIR-ов?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Мне тоже удобнее почему-то на bgp.he.net смотреть.

Вопрос лишь в скорости обновления данных на нём

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Когда я был моложе и студентом. Мой зафкаф говорил: "Главное понять что Вы хотите и где взять информацию". Имно bgp.he.net для общего оперативного представления, а детально и более точно можно покопаться и на RIPE.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

иногда еще полезно с wiresharkом посмотреть.. если кэш какой-нить раздает статику.. с чужого блока.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для автоматизации только первоисточник.

 

for as in AS47542 AS47541 AS28709; do whois -T route -i origin $as|grep route|grep -Po "\d+\.\d+\.\d+\.\d+\/\d+"; done;
95.142.192.0/20
95.142.200.0/21
185.32.248.0/22
87.240.128.0/18
93.186.224.0/21
93.186.232.0/21
95.142.192.0/21
95.213.0.0/18
185.32.248.0/24
185.32.249.0/24
185.32.250.0/24
185.32.251.0/24
95.142.201.0/24
95.142.201.0/26
95.142.201.128/26
95.142.201.192/26
95.142.201.64/26
95.142.202.0/24
95.142.202.128/26
95.142.202.192/26
95.142.202.64/26
95.142.203.0/24
95.142.204.0/24
95.142.206.0/24

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

что-то тут развели изза пустяка)

вот тебе сети вконтакта:

 

95.213.0.0/18

87.240.128.0/18

185.32.248.0/22

93.186.224.0/20

95.142.192.0/20

 

взято от сюда:

https://stat.ripe.net/widget/announced-prefixes#w.resource=47541

https://stat.ripe.net/widget/announced-prefixes#w.resource=47542

https://stat.ripe.net/widget/announced-prefixes#w.resource=28709

 

+некоторые подсети сложил в одну (например из двух /21 сделал одну /20)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

что-то тут развели изза пустяка)

вот тебе сети вконтакта:

 

95.213.0.0/18

87.240.128.0/18

185.32.248.0/22

93.186.224.0/20

95.142.192.0/20

 

взято от сюда:

https://stat.ripe.net/widget/announced-prefixes#w.resource=47541

https://stat.ripe.net/widget/announced-prefixes#w.resource=47542

https://stat.ripe.net/widget/announced-prefixes#w.resource=28709

 

+некоторые подсети сложил в одну (например из двух /21 сделал одну /20)

второй пост :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если цель была закрыть доступ вконтакт - то как быть с анонимайзерами ???

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну тут вообще-то форум провайдеров... так что врятле цель закрывать доступ)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Цель, скорее всего, сделать анлим по полосе до вк

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Цель, скорее всего, сделать анлим по полосе до вк

да, именно такая цель

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Еще у самого VK есть страничка с инфой о сетях: https://vk.com/help.php?page=peering

Не знаю, актуальна ли она сейчас. Одно время информация от них и от RIPE расходилась.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

whois -i mnt-by  VKONTAKTE-NET-MNT -T route | grep ^route | awk '{print $2}' | ./mergenets
87.240.128.0/18
95.213.0.0/18
95.142.192.0/20
93.186.224.0/20
185.32.248.0/22

 

Скрипт mergenets написан коллегой, распространяется под лицензией GPL ;)

#!/usr/bin/perl
#
# Принимает на стандартном вводе адреса сетей в формате xx.xx.xx.xx/yy по
# одному в строке, и выводит модифицированный список в том же формате.
# Полученный список не содержит сети, которые подпадают под более крупные сети в
# исходном списке.
#
# Пустые строки и строки, начинающиеся со знака #, игнорируются.
#
# Например, если исходный список
#
#       192.168.136.0/23
#       192.168.0.0/8
#
# то в результате получится список из одного адреса 192.168.0.0/8
#
# 22.03.2013 ddo

use Socket;
use Data::Dumper;

# Принимает строку в формате xx.xx.xx.xx/yy и возвращает указатель на хэш,
# представляющий адрес сети.
sub strtonet($) {
       my ($str) = @_;
       my %result = ();

       my ($addr, $mask) = ($str =~ /^\s*([0-9.]+)\/([0-9]+)\s*$/);
       my $binaddr = inet_aton($addr) or die('Invalid address ' . $addr);
       $result{'addr'} = unpack('N', $binaddr);
       $result{'mask'} = int($mask);

       return \%result;
}

# Принимает указатель на хэш, представляющий адрес сети, и возвращает строку в
# формате xx.xx.xx.xx/yy
sub net_to_str($) {
       my ($net) = @_;

       my $binaddr = pack('N', $net->{'addr'});

       return sprintf("%s/%d", inet_ntoa($binaddr), $net->{'mask'});
}

# Возвращает true, если первая сеть содержит вторую сеть.
sub net_contains($$) {
       my ($net, $subnet) = @_;
       my $result = 0;

       die("Unsorted nets") if $net->{'mask'} > $subnet->{'mask'};

       my $cmpmask = 0xffffffff << (32 - $net->{'mask'});
       $result = 1 if ($net->{'addr'} == ($subnet->{'addr'} & $cmpmask));

       return $result;
}

# Возвращает родительскую сеть, если указанные сети являются соседними. Соседние
# сети имеют одинаковую маску и могут быть совмещены в единую сеть с маской,
# меньшей на единицу. Если указанные сети не являются соседними, возвращает
# undef.
sub get_parent($$) {
       my ($net1, $net2) = @_;
       my $result = undef;

       # if (net_to_str($net1) =~ /^176.212.48.0\/2[01]$/ &&
                       # net_to_str($net2) =~ /^176.212.48.0\/2[01]$/) {
               # printf(">>> %s %s\n", net_to_str($net1), net_to_str($net2));
       # }
       if ($net1->{'mask'} == $net2->{'mask'}) {
               my $parent_mask = $net1->{'mask'} - 1;
               my $cmpmask = 0xffffffff << (32 - $parent_mask);
               my $parent_addr = $net1->{'addr'} & $cmpmask;
               if (($net2->{'addr'} & $cmpmask) == $parent_addr) {
                       $result = { 'addr' => $parent_addr, 'mask' => $parent_mask };
               }
       }

       return $result;
}

# Принимает в аргументе массив сетей, отсортированных по размеру маски, и
# устанавливает в undef его элементы с сетями, входящими в состав других сетей
# этого массива.
sub merge_subnets($) {
       my ($nets) = @_;
       my $result = 0;

       my $array_len = scalar(@{$nets});
       for (my $i = 0; $i < $array_len; $i++) {
               next if not defined($nets->[$i]->{'addr'});
               for (my $j = $i + 1; $j <= $array_len; $j++) {
                       next if not defined($nets->[$j]->{'addr'});
                       if (net_contains($nets->[$i], $nets->[$j])) {
                               $nets->[$j] = undef;
                               $result ++;
                       }
               }
       }

       # printf(">> merge_subnets: %d\n", $result);
       return $result;
}

# Принимает в аргументе массив сетей, отсортированных по размеру маски, и
# заменяет в нём сосдение сети более крупными сетями, содержащими их. Возвращает
# количество добавленных сетей (это значение равно количеству удалённых пар
# соседних сетей).
sub merge_neighbours($) {
       my ($nets) = @_;
       my $result = 0;

       my $array_len = scalar(@{$nets});
       for (my $i = 0; $i < $array_len; $i++) {
               next if not defined($nets->[$i]->{'addr'});
               for (my $j = $i + 1; $j <= $array_len; $j++) {
                       next if not defined($nets->[$j]->{'addr'});
                       my $parent_net = get_parent($nets->[$i], $nets->[$j]);
                       if (defined($parent_net)) {
                               $nets->[$i] = $parent_net;
                               $nets->[$j] = undef;
                               $result ++;
                               break;
                       }
               }
       }

       # printf(">> merge_neighbours: %d\n", $result);
       return $result;
}

sub test_num($) {
       my ($arr) = @_;
       my $result = 0;

       foreach my $net (@{$arr}) {
               $result++ if defined($net->{'addr'});
       }

       return $result;
}

sub main() {
       my @nets = ();

       while (<>) {
               chomp;
               next if /^\s*$/;
               next if /^\s*#/;
               push(@nets, strtonet($_));
       }

       my $modifications = 0;
       do {
               $modifications = 0;
               @nets = sort({ $a->{'mask'} <=> $b->{'mask'} } @nets);
               $modifications += merge_subnets(\@nets);
               $modifications += merge_neighbours(\@nets);
               # printf(">> nets number: %d\n", test_num(\@nets));
       } while ($modifications > 0);

       foreach my $net (@nets) {
               next if not defined($net->{'addr'});
               printf("%s\n", net_to_str($net));
       }
}

main();

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А нужно ли при нынешних скоростях на тарифах, делать вообще приоритеты по скорости?

Изменено пользователем Brainiac

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А нужно ли при нынешних скоростях на тарифах, делать вообще приоритеты по скорости?

В поселках/селах/деревнях. Городские подключения - смысла нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.