saaremaa Posted August 3, 2014 Posted August 3, 2014 Как быстро узнать все подсети , например, vkontakte? Может ресурc какой есть под это? Ковырять вручную https://apps.db.ripe.net/search/query.html#resultsAnchor - долго. Вставить ник Quote
Butch3r Posted August 3, 2014 Posted August 3, 2014 У них свои AS. Дальше через райп Вставить ник Quote
saaremaa Posted August 3, 2014 Author Posted August 3, 2014 т.е. по-старинке ковырять райп. ок. Вставить ник Quote
s.lobanov Posted August 3, 2014 Posted August 3, 2014 whois -i origin AS_VK1 whois -i origin AS_VK2 у них вроде бы 2 AS, номера не помню, сами легко найдёте Вставить ник Quote
saaremaa Posted August 3, 2014 Author Posted August 3, 2014 s.lobanov, спасибо за подсказку. The RIPE Database whois client has several options... для истории. Вставить ник Quote
disappointed Posted August 3, 2014 Posted August 3, 2014 Есть удобный ресурс http://bgp.he.net/search?search%5Bsearch%5D=vkontakte&commit=Search Вставить ник Quote
saaremaa Posted August 3, 2014 Author Posted August 3, 2014 disappointed, вот прям то что надо. Огромаднейшее спасибо. Вставить ник Quote
s.lobanov Posted August 3, 2014 Posted August 3, 2014 disappointed saaremaa зачем пользоваться леваком, когда можно делать прямые запросы к первоисточнику, а именно в базам RIR-ов? Вставить ник Quote
adnull Posted August 3, 2014 Posted August 3, 2014 Мне тоже удобнее почему-то на bgp.he.net смотреть. Вставить ник Quote
Butch3r Posted August 4, 2014 Posted August 4, 2014 Мне тоже удобнее почему-то на bgp.he.net смотреть. Вопрос лишь в скорости обновления данных на нём Вставить ник Quote
saaremaa Posted August 4, 2014 Author Posted August 4, 2014 Когда я был моложе и студентом. Мой зафкаф говорил: "Главное понять что Вы хотите и где взять информацию". Имно bgp.he.net для общего оперативного представления, а детально и более точно можно покопаться и на RIPE. Вставить ник Quote
zhenya` Posted August 4, 2014 Posted August 4, 2014 иногда еще полезно с wiresharkом посмотреть.. если кэш какой-нить раздает статику.. с чужого блока. Вставить ник Quote
dmvy Posted August 4, 2014 Posted August 4, 2014 Для автоматизации только первоисточник. 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 Вставить ник Quote
Jaguar77 Posted August 4, 2014 Posted August 4, 2014 http://netcologne.dl.sourceforge.net/project/whois/whois/3.2.2/whois3-3.2.2.tar.gz Вставить ник Quote
mcdemon Posted August 5, 2014 Posted August 5, 2014 что-то тут развели изза пустяка) вот тебе сети вконтакта: 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) Вставить ник Quote
Butch3r Posted August 5, 2014 Posted August 5, 2014 что-то тут развели изза пустяка) вот тебе сети вконтакта: 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) второй пост :) Вставить ник Quote
Diman_xxxx Posted August 5, 2014 Posted August 5, 2014 Если цель была закрыть доступ вконтакт - то как быть с анонимайзерами ??? Вставить ник Quote
mcdemon Posted August 5, 2014 Posted August 5, 2014 ну тут вообще-то форум провайдеров... так что врятле цель закрывать доступ) Вставить ник Quote
s.lobanov Posted August 5, 2014 Posted August 5, 2014 Цель, скорее всего, сделать анлим по полосе до вк Вставить ник Quote
saaremaa Posted August 5, 2014 Author Posted August 5, 2014 Цель, скорее всего, сделать анлим по полосе до вк да, именно такая цель Вставить ник Quote
viver Posted August 5, 2014 Posted August 5, 2014 Еще у самого VK есть страничка с инфой о сетях: https://vk.com/help.php?page=peering Не знаю, актуальна ли она сейчас. Одно время информация от них и от RIPE расходилась. Вставить ник Quote
g3fox Posted August 5, 2014 Posted August 5, 2014 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(); Вставить ник Quote
No_name Posted August 5, 2014 Posted August 5, 2014 (edited) А нужно ли при нынешних скоростях на тарифах, делать вообще приоритеты по скорости? Edited August 5, 2014 by Brainiac Вставить ник Quote
saaremaa Posted August 5, 2014 Author Posted August 5, 2014 А нужно ли при нынешних скоростях на тарифах, делать вообще приоритеты по скорости? В поселках/селах/деревнях. Городские подключения - смысла нет. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.