Guest User

Untitled

a guest
Jan 5th, 2023
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. #! /usr/bin/env python3
  2.  
  3. import requests
  4.  
  5. api_key = "<api key here>"
  6.  
  7. s = requests.Session()
  8.  
  9. def nvd_call(**args):
  10. headers = {
  11. "apiKey": api_key
  12. }
  13. return s.get("https://services.nvd.nist.gov/rest/json/cves/2.0", headers=headers, params=args)
  14.  
  15.  
  16. def dump_latest():
  17. r = nvd_call(lastModStartDate="2023-01-05T16:52:31.173", lastModEndDate="2023-01-05T17:52:31.173")
  18. r.raise_for_status()
  19. print(r.json())
  20.  
  21.  
  22. def dump_all():
  23. def fetcher():
  24. index = 0
  25. while True:
  26. r = nvd_call(startIndex=index)
  27. r.raise_for_status()
  28. data = r.json()
  29. index = data["startIndex"]
  30. total = data["totalResults"]
  31. per_page = data["resultsPerPage"]
  32.  
  33. for cve in data["vulnerabilities"]:
  34. yield cve
  35.  
  36. index += per_page
  37. if index >= total:
  38. break
  39. # TODO recommended to sleep for 6 seconds
  40.  
  41.  
  42. for cve in fetcher():
  43. print(cve["cve"]["id"])
  44.  
  45. if __name__ == "__main__":
  46. dump_all()
  47.  
Advertisement
Add Comment
Please, Sign In to add comment