1
+ # frozen_string_literal: true
2
+
1
3
module Redhound
2
4
class Header
3
5
class Ipv4
@@ -13,6 +15,7 @@ def generate(bytes:)
13
15
14
16
def initialize ( bytes :)
15
17
raise ArgumentError , 'bytes must be 20 bytes' unless bytes . size == 20
18
+
16
19
@bytes = bytes
17
20
end
18
21
@@ -40,7 +43,7 @@ def udp?
40
43
end
41
44
42
45
def dump
43
- puts " IPv4 HEADER----------------"
46
+ puts ' IPv4 HEADER----------------'
44
47
puts self
45
48
end
46
49
@@ -71,38 +74,38 @@ def ihl
71
74
end
72
75
73
76
def tot_len
74
- @tot_len . map { |b | b . to_s ( 16 ) . rjust ( 2 , "0" ) } . join . to_i ( 16 )
77
+ @tot_len . map { |b | b . to_s ( 16 ) . rjust ( 2 , '0' ) } . join . to_i ( 16 )
75
78
end
76
79
77
80
def id
78
- @id . map { |b | b . to_s ( 16 ) . rjust ( 2 , "0" ) } . join . to_i ( 16 )
81
+ @id . map { |b | b . to_s ( 16 ) . rjust ( 2 , '0' ) } . join . to_i ( 16 )
79
82
end
80
83
81
84
def frag_off
82
- @frag_off . map { |b | b . to_s ( 16 ) . rjust ( 2 , "0" ) } . join . to_i ( 16 ) & 0x1FFF
85
+ @frag_off . map { |b | b . to_s ( 16 ) . rjust ( 2 , '0' ) } . join . to_i ( 16 ) & 0x1FFF
83
86
end
84
87
85
88
def protocol
86
89
case @protocol
87
90
when ICMP
88
- " ICMP"
91
+ ' ICMP'
89
92
when UDP
90
- " UDP"
93
+ ' UDP'
91
94
else
92
- " Unknown"
95
+ ' Unknown'
93
96
end
94
97
end
95
98
96
99
def check
97
- @check . map { |b | b . to_s ( 16 ) . rjust ( 2 , "0" ) } . join . to_i ( 16 )
100
+ @check . map { |b | b . to_s ( 16 ) . rjust ( 2 , '0' ) } . join . to_i ( 16 )
98
101
end
99
102
100
103
def saddr
101
- @saddr . map { |b | b . to_s ( 16 ) . rjust ( 2 , "0" ) } . join ( "." )
104
+ @saddr . map { |b | b . to_s ( 16 ) . rjust ( 2 , '0' ) } . join ( '.' )
102
105
end
103
106
104
107
def daddr
105
- @daddr . map { |b | b . to_s ( 16 ) . rjust ( 2 , "0" ) } . join ( "." )
108
+ @daddr . map { |b | b . to_s ( 16 ) . rjust ( 2 , '0' ) } . join ( '.' )
106
109
end
107
110
end
108
111
end
0 commit comments