Skip to content

Commit f7079e6

Browse files
authored
Create VulDBApiDemoRuby.rb
Add API Demo for Ruby
1 parent 91fb1c9 commit f7079e6

File tree

1 file changed

+75
-0
lines changed

1 file changed

+75
-0
lines changed

VulDBApiDemoRuby.rb

+75
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
=begin
2+
vuldb_api_demo - Ruby VulDB API Demo
3+
4+
License: GPL-3.0
5+
Required Dependencies:
6+
* net/http
7+
* uri
8+
* json
9+
Optional Dependencies: None
10+
=end
11+
12+
require 'net/http'
13+
require 'uri'
14+
require 'json'
15+
16+
class VulDBApiDemo
17+
def self.run
18+
begin
19+
# API-URL
20+
url = URI.parse("https://vuldb.com/?api")
21+
22+
# Headers for authentication
23+
personal_api_key = "" # Enter your personal API key here.
24+
user_agent = "VulDB API Advanced Ruby Demo Agent"
25+
26+
# Request body parameters
27+
recent = "5" # Default value is "5"
28+
details = "0" # Default value is "0"
29+
id = nil # Example: "290848", enter specific VulDB id to search for (Default value is nil)
30+
cve = nil # Example: "CVE-2024-1234", enter a CVE to search for (Default value is nil)
31+
32+
# Construct the request body
33+
request_body =
34+
if id.nil? && cve.nil?
35+
"recent=#{recent}&details=#{details}"
36+
elsif !cve.nil?
37+
"search=#{cve}&details=#{details}"
38+
else
39+
"id=#{id}&details=#{details}"
40+
end
41+
42+
# Initialize the HTTP request
43+
http = Net::HTTP.new(url.host, url.port)
44+
http.use_ssl = true
45+
46+
request = Net::HTTP::Post.new(url.path)
47+
request["User-Agent"] = user_agent
48+
request["X-VulDB-ApiKey"] = personal_api_key
49+
request.body = request_body
50+
51+
# Send the request
52+
response = http.request(request)
53+
54+
if response.code.to_i == 200
55+
# Parse and display the response body
56+
puts "Response:"
57+
puts response.body
58+
else
59+
# Handle non-200 response codes
60+
puts "Request failed with response code: #{response.code}"
61+
puts "Response message: #{response.message}"
62+
end
63+
64+
rescue URI::InvalidURIError => e
65+
puts "Invalid URI: #{e.message}"
66+
rescue Net::HTTPError => e
67+
puts "HTTP Error: #{e.message}"
68+
rescue StandardError => e
69+
puts "Error: #{e.message}"
70+
end
71+
end
72+
end
73+
74+
# Run the demo
75+
VulDBApiDemo.run

0 commit comments

Comments
 (0)