1
This commit is contained in:
commit
3933cf6cb7
50
1.rb
Normal file
50
1.rb
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
|
require 'net/http'
|
||||||
|
require 'resolv'
|
||||||
|
|
||||||
|
def validate_cidr?(cidr)
|
||||||
|
# Check for IPv4 CIDR format
|
||||||
|
return false unless cidr =~ /^([0-9]{1,3}\.){3}[0-9]{1,3}\/[0-9]{1,2}$/
|
||||||
|
|
||||||
|
# Parse network address and prefix length
|
||||||
|
network_address, prefix_length = cidr.split('/')
|
||||||
|
|
||||||
|
# Validate network address
|
||||||
|
begin
|
||||||
|
Resolv::DNS.new.getaddress(network_address)
|
||||||
|
rescue Resolv::ResolvError
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
# Validate prefix length
|
||||||
|
return false if prefix_length.to_i > 32
|
||||||
|
|
||||||
|
true
|
||||||
|
end
|
||||||
|
|
||||||
|
def process_url(url)
|
||||||
|
begin
|
||||||
|
uri = URI(url)
|
||||||
|
response = Net::HTTP.get(uri)
|
||||||
|
rescue URI::InvalidURIError, Net::HTTPError => e
|
||||||
|
puts "Error fetching URL: #{e.message}"
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
cidrs = response.split("\n")
|
||||||
|
cidrs.each do |cidr|
|
||||||
|
if validate_cidr?(cidr)
|
||||||
|
puts "Valid CIDR: #{cidr}"
|
||||||
|
else
|
||||||
|
puts "Invalid CIDR: #{cidr}"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Get the URL from the user
|
||||||
|
puts "Enter the URL containing the IPv4 CIDR list:"
|
||||||
|
url = gets.chomp
|
||||||
|
|
||||||
|
# Process the URL
|
||||||
|
process_url(url)
|
39
2.rb
Normal file
39
2.rb
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
|
require 'net/http'
|
||||||
|
require 'netaddr'
|
||||||
|
|
||||||
|
def validate_cidr?(cidr)
|
||||||
|
begin
|
||||||
|
IPAddr.new(cidr)
|
||||||
|
return true
|
||||||
|
rescue IPAddr::InvalidAddressError
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def process_url(url)
|
||||||
|
begin
|
||||||
|
uri = URI(url)
|
||||||
|
response = Net::HTTP.get(uri)
|
||||||
|
rescue URI::InvalidURIError, Net::HTTPError => e
|
||||||
|
puts "Error fetching URL: #{e.message}"
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
cidrs = response.split("\n")
|
||||||
|
cidrs.each do |cidr|
|
||||||
|
if validate_cidr?(cidr)
|
||||||
|
puts "Valid CIDR: #{cidr}"
|
||||||
|
else
|
||||||
|
puts "Invalid CIDR: #{cidr}"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Get the URL from the user
|
||||||
|
puts "Enter the URL containing the IPv4 CIDR list:"
|
||||||
|
url = gets.chomp
|
||||||
|
|
||||||
|
# Process the URL
|
||||||
|
process_url(url)
|
Loading…
Reference in New Issue
Block a user