Class: Synthra::Types::TechnologyInternet::Ipv6

Inherits:
Base
  • Object
show all
Defined in:
lib/synthra/types/technology_internet/networking.rb

Overview

Ipv6 type

Instance Method Summary collapse

Instance Method Details

#generate_edge(rng, context, args) ⇒ Object



62
63
64
# File 'lib/synthra/types/technology_internet/networking.rb', line 62

def generate_edge(rng, context, args)
  ["::1", "fe80::1", "2001:0db8:85a3:0000:0000:8a2e:0370:7334"].sample(random: rng.instance_variable_get(:@random))
end

#generate_invalid(rng, context, args) ⇒ Object



66
67
68
# File 'lib/synthra/types/technology_internet/networking.rb', line 66

def generate_invalid(rng, context, args)
  [nil, "not:an:ipv6", "::g", [], {}].sample(random: rng.instance_variable_get(:@random))
end

#generate_random(rng, context, args) ⇒ String

Generate a random IPv6 address

Parameters:

Returns:

  • (String)

    IPv6 address string



47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/synthra/types/technology_internet/networking.rb', line 47

def generate_random(rng, context, args)
  adapter = faker_adapter(context)
  if adapter
    adapter.ip_v6_address

  else
    # Manual IPv6 generation fallback
    8.times.map { format("%x", rng.int(0, 65535)) }.join(":")
  end

rescue StandardError
  8.times.map { format("%x", rng.int(0, 65535)) }.join(":") # Fallback
end