Python bindings for BGPKIT software. For all software offerings, please check out our GitHub repository at https://github.com/bgpkit.
See the bgpkit-parser-py documentation for the full API.
importbgpkit# Full element parsingparser=bgpkit.Parser(url="https://spaces.bgpkit.org/parser/update-example",
filters={"peer_ips": "185.1.8.65, 2001:7f8:73:0:3:fa4:0:1"})
foreleminparser:
print(elem)
# Route-level parsing (faster, fewer fields)forrouteinbgpkit.RouteParser(url="https://spaces.bgpkit.org/parser/update-example"):
print(route.prefix, route.as_path)
# Reusable filter objectsfrombgpkitimportFilterf=Filter.peer_ip("185.1.8.65")
parser=bgpkit.Parser.from_filters(url, [f])importbgpkitbroker=bgpkit.Broker()
# Search MRT data filesitems=broker.query(ts_start="2024-01-01T00:00:00Z", ts_end="2024-01-01T01:00:00Z")
print(len(items))
# Get latest fileslatest=broker.latest()
# Query peer informationpeers=broker.peers(asn=13335, full_feed=True)
# List collectorscollectors=broker.collectors(project="routeviews", active=True)ip_info=bgpkit.IpLookup().query("1.1.1.1")
print(ip_info.country, ip_info.as_number, ip_info.as_name)result=bgpkit.AsnLookup().query(asn="13335", country="US")
forasninresult.data:
print(asn.asn, asn.name, asn.country)entries=bgpkit.CommunityLookup().query(asn="13335", page_size=50)
forentryinentries:
print(entry.value, entry.description)
sources=bgpkit.CommunityLookup().sources()roas=bgpkit.Roas()
data=roas.query(asn=3333, date="2018-01-01")
forentryindata:
print(entry.prefix, entry.asn, entry.tal)
# Current ROAs onlycurrent=roas.query(prefix="1.1.1.0/24", current=True)Push a version tag to build and publish automatically via GitHub Actions:
git tag v0.7.0
git push origin v0.7.0
Manual release:
python -m pip install --upgrade build twine
python -m build
twine upload --skip-existing dist/*
PyPI Trusted Publishing is configured for automated releases. See .github/workflows/release.yml.