added a basic subdomain generator that uses the year, month, day
This commit is contained in:
parent
e7e2db77e0
commit
fb71c34556
1 changed files with 24 additions and 0 deletions
24
kenna_kdi_importer/subdomain_generator.rb
Normal file
24
kenna_kdi_importer/subdomain_generator.rb
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
module KennaKdi
|
||||||
|
class SubdomainGenerator
|
||||||
|
attr_accessor :tld, :base_domain
|
||||||
|
|
||||||
|
def initialize(tld, base_domain)
|
||||||
|
@tld = tld
|
||||||
|
@base_domain = base_domain
|
||||||
|
end
|
||||||
|
|
||||||
|
def perform(year, month, day)
|
||||||
|
# generating a subdomain.
|
||||||
|
# https://en.wikipedia.org/wiki/Domain_generation_algorithm
|
||||||
|
domain = ""
|
||||||
|
|
||||||
|
16.times do
|
||||||
|
year = ((year ^ 8 * year) >> 11) ^ ((year & 0xFFFFFFF0) << 17)
|
||||||
|
month = ((month ^ 4 * month) >> 25) ^ 16 * (month & 0xFFFFFFF8)
|
||||||
|
day = ((day ^ (day << 13)) >> 19) ^ ((day & 0xFFFFFFFE) << 12)
|
||||||
|
domain += (((year ^ month ^ day) % 25) + 97).chr
|
||||||
|
end
|
||||||
|
domain + base_domain + tld
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Add table
Reference in a new issue