aboutsummaryrefslogtreecommitdiffstats
path: root/examples/basic_usage.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/basic_usage.py')
-rw-r--r--examples/basic_usage.py74
1 files changed, 74 insertions, 0 deletions
diff --git a/examples/basic_usage.py b/examples/basic_usage.py
new file mode 100644
index 0000000..b386155
--- /dev/null
+++ b/examples/basic_usage.py
@@ -0,0 +1,74 @@
+"""Basic usage examples for nvdb-py."""
+
+import asyncio
+
+from nvd import NVDClient
+
+
+async def main() -> None:
+ """Run basic examples."""
+ async with NVDClient() as client:
+ print("=" * 80)
+ print("Example 1: Get a specific CVE")
+ print("=" * 80)
+
+ cve = await client.cve.get_cve("CVE-2021-44228")
+ print(f"CVE ID: {cve.id}")
+ print(f"Published: {cve.published}")
+ print(f"Status: {cve.vulnStatus}")
+ print(f"CVSS v3 Score: {cve.cvss_v3_score}")
+ print(f"Description: {cve.description[:200]}...")
+ print()
+
+ print("=" * 80)
+ print("Example 2: Search CVEs by keyword (limited to 5 results)")
+ print("=" * 80)
+
+ count = 0
+ async for cve in client.cve.search_cves(keyword="sql injection"):
+ print(f"{cve.id}: {cve.description[:100]}...")
+ count += 1
+ if count >= 5:
+ break
+ print()
+
+ print("=" * 80)
+ print("Example 3: Get CVEs with CRITICAL severity (limited to 5)")
+ print("=" * 80)
+
+ count = 0
+ async for cve in client.cve.search_cves(cvss_v3_severity="CRITICAL"):
+ score = cve.cvss_v3_score or "N/A"
+ print(f"{cve.id} - Score: {score} - {cve.description[:80]}...")
+ count += 1
+ if count >= 5:
+ break
+ print()
+
+ print("=" * 80)
+ print("Example 4: Search CPEs by keyword")
+ print("=" * 80)
+
+ count = 0
+ async for cpe in client.cpe.search_cpes(keyword="apache"):
+ print(f"{cpe.cpeName}")
+ print(f" Title: {cpe.title}")
+ print(f" Deprecated: {cpe.deprecated}")
+ count += 1
+ if count >= 5:
+ break
+ print()
+
+ print("=" * 80)
+ print("Example 5: Get CVE change history")
+ print("=" * 80)
+
+ history = await client.history.get_cve_history("CVE-2021-44228")
+ print(f"Found {len(history)} change events for CVE-2021-44228")
+ for change in history[:3]:
+ print(f" {change.eventName} at {change.created}")
+ print()
+
+
+if __name__ == "__main__":
+ asyncio.run(main())