Module: Rex::Proto::DNS::Packet::Raw

Defined in:
lib/rex/proto/dns/packet.rb

Class Method Summary collapse

Class Method Details

.from_int_be(data) ⇒ Array

Convert data from big endian unsigned int

Parameters:

  • data (String)

    Input for conversion

Returns:

  • (Array)

    Integer array output



266
267
268
# File 'lib/rex/proto/dns/packet.rb', line 266

def self.from_int_be(data)
  data.unpack('I>*')
end

.from_int_le(data) ⇒ Array

Convert data from little endian unsigned int

Parameters:

  • data (String)

    Input for conversion

Returns:

  • (Array)

    Integer array output



206
207
208
# File 'lib/rex/proto/dns/packet.rb', line 206

def self.from_int_le(data)
  data.unpack('I*')
end

.from_long_be(data) ⇒ Array

Convert data from big endian unsigned long

Parameters:

  • data (String)

    Input for conversion

Returns:

  • (Array)

    Integer array output



286
287
288
# File 'lib/rex/proto/dns/packet.rb', line 286

def self.from_long_be(data)
  data.unpack('L>*')
end

.from_long_le(data) ⇒ Array

Convert data from little endian unsigned long

Parameters:

  • data (String)

    Input for conversion

Returns:

  • (Array)

    Integer array output



226
227
228
# File 'lib/rex/proto/dns/packet.rb', line 226

def self.from_long_le(data)
  data.unpack('L*')
end

.from_short_be(data) ⇒ Array

Convert data from big endian unsigned short

Parameters:

  • data (String)

    Input for conversion

Returns:

  • (Array)

    Integer array output



246
247
248
# File 'lib/rex/proto/dns/packet.rb', line 246

def self.from_short_be(data)
  data.unpack('S>*')
end

.from_short_le(data) ⇒ Array

Convert data from little endian unsigned short

Parameters:

  • data (String)

    Input for conversion

Returns:

  • (Array)

    Integer array output



186
187
188
# File 'lib/rex/proto/dns/packet.rb', line 186

def self.from_short_le(data)
  data.unpack('S*')
end

.request_id(data) ⇒ Fixnum

Returns request ID from raw packet skipping parsing

Parameters:

  • data (String)

    Request data

Returns:

  • (Fixnum)

    Request ID



296
297
298
# File 'lib/rex/proto/dns/packet.rb', line 296

def self.request_id(data)
  self.from_short_be(data[0..1])[0]
end

.request_length(data) ⇒ Fixnum

Returns request length from raw packet skipping parsing

Parameters:

  • data (String)

    Request data

Returns:

  • (Fixnum)

    Request Length



306
307
308
# File 'lib/rex/proto/dns/packet.rb', line 306

def self.request_length(data)
  self.from_short_le(data[0..2])[0]
end

.to_int_be(data) ⇒ String

Convert data to big endian unsigned int

Parameters:

  • data (Fixnum, Float, Array)

    Input for conversion

Returns:

  • (String)

    Raw output



256
257
258
# File 'lib/rex/proto/dns/packet.rb', line 256

def self.to_int_be(data)
  [data].flatten.pack('I>*')
end

.to_int_le(data) ⇒ String

Convert data to little endian unsigned int

Parameters:

  • data (Fixnum, Float, Array)

    Input for conversion

Returns:

  • (String)

    Raw output



196
197
198
# File 'lib/rex/proto/dns/packet.rb', line 196

def self.to_int_le(data)
  [data].flatten.pack('I*')
end

.to_long_be(data) ⇒ String

Convert data to big endian unsigned long

Parameters:

  • data (Fixnum, Float, Array)

    Input for conversion

Returns:

  • (String)

    Raw output



276
277
278
# File 'lib/rex/proto/dns/packet.rb', line 276

def self.to_long_be(data)
  [data].flatten.pack('L>*')
end

.to_long_le(data) ⇒ String

Convert data to little endian unsigned long

Parameters:

  • data (Fixnum, Float, Array)

    Input for conversion

Returns:

  • (String)

    Raw output



216
217
218
# File 'lib/rex/proto/dns/packet.rb', line 216

def self.to_long_le(data)
  [data].flatten.pack('L*')
end

.to_short_be(data) ⇒ String

Convert data to big endian unsigned short

Parameters:

  • data (Fixnum, Float, Array)

    Input for conversion

Returns:

  • (String)

    Raw output



236
237
238
# File 'lib/rex/proto/dns/packet.rb', line 236

def self.to_short_be(data)
  [data].flatten.pack('S>*')
end

.to_short_le(data) ⇒ String

Convert data to little endian unsigned short

Parameters:

  • data (Fixnum, Float, Array)

    Input for conversion

Returns:

  • (String)

    Raw output



176
177
178
# File 'lib/rex/proto/dns/packet.rb', line 176

def self.to_short_le(data)
  [data].flatten.pack('S*')
end