如何找出属于某个AS的所有IP范围?


13

我想知道什么IP范围属于AS714。

我如何获得此信息?

我知道如何反向操作,这对于Whois很容易。但是另一种方法似乎并不那么容易。


您是否想要源自此AS的IP地址范围?(没有AS的直接客户)只能通过此AS访问的IP地址范围如何?(拥有自己的AS的客户。)通过该AS以及其他提供商AS可以到达的IP地址范围如何?(多宿主客户。)
David Schwartz 2012年

1
目的是找出我的提供商拥有的所有IP范围。我通过访问bgp.potaroo.net/as1221/asnames.txt获取此信息,以便找出AS编号,并熟化了net.data/data-tools/stats/ris/routing-information-service以获得所有IP范围通过前缀选项卡。您知道其他可能性吗?
JohnnyFromBF 2012年

Answers:


17

http://ipinfo.io/AS714上在线列出了它们,并提供了相关的详细信息(替换ASN以获得与其他任何ASN等效的详细信息)。

如果您不想以编程方式浏览它们,而是可以使用RADb whois服务器,则可以:

$ whois -h whois.radb.net -- '-i origin AS714' | grep -Eo "([0-9.]+){4}/[0-9]+" | head
17.108.0.0/16
17.106.0.0/15
17.102.0.0/16
17.207.0.0/16
17.216.0.0/16
17.250.48.0/24
17.252.65.0/24
192.35.50.0/24
17.148.0.0/14
17.86.0.0/17

1
感谢您的回答。现在,我可以轻松地为滥用主机提供商创建SMTP阻止列表。
加里·特尔基亚

作为参考,这些其他路由注册表也应工作。
JakeGould '19


3

对于发现此问题的其他人-我真的很喜欢Ben Dowling的答案。但是根据:

http://www.radb.net/support/query2.php

有一种不同的方法也可以产生非常不同的结果!我正在测试Facebook的IP,该IP在Bens的网站中没有出现。头结果。根据以上链接,查询IP4地址的正确方法是:

whois -h whois.radb.net '!gas714'

同样令人高兴的是,您现在可以找到具有以下内容的所有IP6地址:

whois -h whois.radb.net '!6as714'

就像我说的那样-当我为Facebook ASN运行它时,我发现了我丢失的IP地址。

以后更新

不幸的是Radb.net没有给出正确的数据!以尝试ASN 19281为例,您会看到给出的结果,但是如果您只是不带参数的whois radb.net,则会显示“未找到记录”。恕我直言,它似乎不够准确。


这种方法对于长列表确实有一些麻烦,例如Facebook的ie。whois -h whois.radb.net -- '!6as32934'地址中间用换行符“剪断”
Hvisage

这意味着您应该使用nc,例如:echo '!6as32934'|nc whois.radb.net 43
Hvisage

1

我发现您无法真正自动执行对bgp.he.net的查询,我一直收到403个响应,然后当我伪造用户代理时,它试图验证我确实是一个真正的浏览器。我使用bgp.he.net进行的所有操作都失败了(甚至联系该网站)。

DID对我有用的是,如Ben Dowling在另一个答案中所说的那样查询http://ipinfo.io

我做了一个python脚本来获取每个ASN的每个IP块。我在csv文件中列出了每个AS编号。这里是:

import requests
from bs4 import BeautifulSoup
import re


url_base = 'http://ipinfo.io/'
as_base = 'AS'

output = open('ip_per_asn.csv', 'w')
with open('chilean_asn.csv') as f:
    lines = f.read().splitlines()
    for asn in lines:
        ASN = as_base + asn
        page = requests.get(url_base+ASN)
        html_doc = page.content
        soup = BeautifulSoup(html_doc, 'html.parser')
        for link in soup.find_all('a'):
            if asn in link.get('href'):
                auxstring = '/'+as_base+asn+'/'
                line = re.sub(auxstring, '', link.get('href'))
                printstring = asn+','+line+'\n'
                if 'AS' not in printstring:
                    output.write(printstring)
        print asn+'\n'

print 'script finished'

也就是说,您也可以将curl与ipinfo.io一起使用。只是要有礼貌,不要对服务器进行过大的查询。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.