mirror of
https://github.com/internetee/registry.git
synced 2025-06-08 13:44:47 +02:00
parent
f7c0c886bd
commit
cfec74f9f8
1 changed files with 14 additions and 13 deletions
|
@ -47,19 +47,6 @@ class Nameserver < ActiveRecord::Base
|
||||||
self[:hostname_puny] = SimpleIDN.to_ascii(hostname)
|
self[:hostname_puny] = SimpleIDN.to_ascii(hostname)
|
||||||
end
|
end
|
||||||
|
|
||||||
def val_ipv4
|
|
||||||
regexp = /\A(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\z/
|
|
||||||
ipv4.to_a.each do |ip|
|
|
||||||
errors.add(:ipv4, :invalid) unless ip =~ regexp
|
|
||||||
end
|
|
||||||
end
|
|
||||||
def val_ipv6
|
|
||||||
regexp = /(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))/
|
|
||||||
ipv6.to_a.each do |ip|
|
|
||||||
errors.add(:ipv6, :invalid) unless ip =~ regexp
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
def find_by_hash_params params
|
def find_by_hash_params params
|
||||||
params = params.with_indifferent_access
|
params = params.with_indifferent_access
|
||||||
|
@ -102,4 +89,18 @@ class Nameserver < ActiveRecord::Base
|
||||||
regexp = /(\A|\.)..--/
|
regexp = /(\A|\.)..--/
|
||||||
errors.add(:hostname, :invalid) if hostname =~ regexp
|
errors.add(:hostname, :invalid) if hostname =~ regexp
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def val_ipv4
|
||||||
|
regexp = /\A(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\z/
|
||||||
|
ipv4.to_a.each do |ip|
|
||||||
|
errors.add(:ipv4, :invalid) unless ip =~ regexp
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def val_ipv6
|
||||||
|
regexp = /(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))/
|
||||||
|
ipv6.to_a.each do |ip|
|
||||||
|
errors.add(:ipv6, :invalid) unless ip =~ regexp
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue