Class: Mihari::Structs::Censys::V2::Hit

Inherits:
Dry::Struct
  • Object
show all
Defined in:
lib/mihari/structs/censys.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#autonomous_systemAutonomousSystem? (readonly)

Returns:



109
# File 'lib/mihari/structs/censys.rb', line 109

attribute :autonomous_system, AutonomousSystem.optional

#ipString (readonly)

Returns:

  • (String)


101
# File 'lib/mihari/structs/censys.rb', line 101

attribute :ip, Types::String

#locationLocation (readonly)

Returns:



105
# File 'lib/mihari/structs/censys.rb', line 105

attribute :location, Location

#metadataHash (readonly)

Returns:

  • (Hash)


113
# File 'lib/mihari/structs/censys.rb', line 113

attribute :metadata, Types::Hash

#servicesArray<Service> (readonly)

Returns:



117
# File 'lib/mihari/structs/censys.rb', line 117

attribute :services, Types.Array(Service)

Class Method Details

.from_dynamic!(d) ⇒ Object

Parameters:

  • d (Hash)


143
144
145
146
147
148
149
150
151
152
# File 'lib/mihari/structs/censys.rb', line 143

def from_dynamic!(d)
  d = Types::Hash[d]
  new(
    ip: d.fetch("ip"),
    location: Location.from_dynamic!(d.fetch("location")),
    autonomous_system: AutonomousSystem.from_dynamic!(d["autonomous_system"]),
    metadata: d,
    services: d.fetch("services", []).map { |x| Service.from_dynamic!(x) }
  )
end

Instance Method Details

#artifactMihari::Models::Artifact



129
130
131
132
133
134
135
136
137
# File 'lib/mihari/structs/censys.rb', line 129

def artifact
  Models::Artifact.new(
    data: ip,
    metadata:,
    autonomous_system: autonomous_system&.as,
    geolocation: location.geolocation,
    ports:
  )
end

#portsArray<Mihari::Port>

Returns:

  • (Array<Mihari::Port>)


122
123
124
# File 'lib/mihari/structs/censys.rb', line 122

def ports
  services.map(&:_port)
end