특정 AS에 속하는 모든 IP 범위를 찾는 방법은 무엇입니까?


13

예를 들어 AS714에 속하는 IP 범위를 알고 싶습니다.

이 정보는 어떻게 얻습니까?

나는 그 반대의 방법을 알고 있습니다. 그러나 다른 방법은 그렇게 쉬운 것처럼 보이지 않습니다.


이 AS에서 시작된 IP 주소 범위를 원하십니까? (AS가없는 직접 고객)이 AS를 통해서만 도달 할 수있는 IP 주소 범위는 어떻습니까? (자신의 AS가있는 고객)이 AS와 다른 공급자 AS를 통해 도달 할 수있는 IP 주소 범위는 어떻습니까? (멀티 홈 고객)
David Schwartz

1
그 목적은 공급자가 소유 한 모든 IP 범위를 찾는 것이 었습니다. 나는 모든 IP를 얻기 위해 AS 번호와 ripe.net/data-tools/stats/ris/routing-information-service 를 찾기 위해 bgp.potaroo.net/as1221/asnames.txt 를 방문 하여이 정보 를 얻었습니다. 접두사 탭의 범위입니다. 다른 가능성을 알고 있습니까?
JohnnyFromBF

답변:


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 차단 목록을 쉽게 만들 수 있습니다.
Jari Turkia



3

이것을 발견하는 다른 사람을 위해-나는 Ben Dowling의 대답을 정말로 좋아했습니다 . 그러나에 따르면 :

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

매우 다른 결과를 산출하는 다른 방법이 있습니다 ! Bens '에서 나오지 않은 페이스 북 IP를 테스트하고있었습니다 | 헤드 결과. 위의 링크에 따르면 IP4 주소에 대한 올바른 쿼리 방법은 다음과 같습니다.

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

마찬가지로 다음과 같은 방법으로 모든 IP6 주소를 찾을 수 있습니다.

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

내가 말했듯이-Facebook ASN에서 이것을 실행했을 때 누락 된 IP 주소를 찾았습니다.

나중에 업데이트

불행히도 Radb.net은 정확한 데이터를 제공하지 않습니다 !! 시도 ASN 19281예를 들어, 당신은 주어진 결과를 볼 수 있지만, 당신은 단순히 후이즈 radb.net 매개 변수없이이 말을한다면 "어떤 기록을 찾을 수 없습니다." IMHO가 충분히 정확하지 않은 것 같습니다.


이 방법은 Facebook과 같은 긴 목록에 문제가 있습니다. 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 를 쿼리하는 것이 었습니다 .

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'

즉, ipinfo.io와 함께 curl을 사용할 수도 있습니다. 정중하게 행동하고 서버에 터무니없이 큰 쿼리를하지 마십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.