使用Python进行BGP ASN查找

时间:2015-04-06 18:14:30

标签: python lookup whois bgp

有没有人知道Python模块或解决方案如何通过ASN(自治系统编号)编号查找公司信息(最好是姓名)?

ASN工具有很多IP,但这不是我要求的。

ASN需要是输入 - 公司名称输出。

这个网站有我需要的信息: http://bgp.potaroo.net/cgi-bin/as-report?as=AS5607&view=2.0

感谢任何想法!

4 个答案:

答案 0 :(得分:2)

whois.ra.net可能包含您要查找的内容。它是一个whois-server,可以通过AS号作为ip地址查询。

大多数python模块似乎不允许您设置要查询的whois服务器。您可能必须自己实现一个whois客户端,这非常简单:

尝试:

import socket

def whois(server, query):
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.connect((server, 43))
    sock.send(query + '\r\n')
    response = ''

    while True:
        d = sock.recv(4096)
        response += d
        if d == '':
            break
    sock.close()

    return response

print whois('whois.ra.net', 'AS15169')

答案 1 :(得分:1)

该信息可在CIDR-Report网站上公开获取。

此网址包含您需要的所有信息,并且每天都会更新。大文件,加载可能需要一段时间: http://www.cidr-report.org/as2.0/autnums.html

答案 2 :(得分:1)

尝试this,它可能是您需要的

from cymruwhois import Client
import ipresolved
domain='facebook.com'
ips=ipresolved.getipresolvedfromdomain(domain)
c=Client()
for i in ips.json()['resolutions']:
    ip=i['ip_address']
    print('ip : '+ip)
    r=c.lookup(ip)
    print('asn number: ',r.asn)
    print('asn owener : ',r.owner)
    print('==============')

答案 3 :(得分:0)

@ Al-Pha答案的稍微更新的版本:

多查询:

override func viewDidLoad() {
    super.viewDidLoad()
    if let navigationController = navigationController {
        coordinator = MainCoordinator(navigationController: navigationController)
    }
}

单次查找:

from cymruwhois import Client
import socket

c = Client()
ip = socket.gethostbyname('globalresearch.ca')
for r in c.lookupmany([ip, "213.73.91.35"]):
    print(r.__dict__)
    # print(r.asn)