ip_in_range 1.0 → 1.05
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/bin/ip_in_range +1 -1
- data/ip_in_range.gemspec +3 -0
- data/lib/basic_logging.rb +46 -13
- data/lib/file_checking.rb +3 -4
- data/lib/ip_range.rb +5 -2
- data/lib/version.rb +2 -2
- metadata +27 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 353a2d86f7e263a1905e030d0c5e8006c1ee4d5bcbd140a23f74c3e8d02acecb
|
4
|
+
data.tar.gz: 1b4ef7718d85e4536515e763e7d858adaa4d083945dfe3df2b65a61729f0705d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 21c1e2a1395bd9df2b520beda3a1420666ef7a3d612a887258221262da80b9e0c139f85c80a0e6849909709ca53e1649eaf99c432c7c60d16acf07d260ffc833
|
7
|
+
data.tar.gz: 4c30b698d81a4dc459d7366f3c46ef33a528fe74163e8baa0ca3f662eb479b48315f76da9f39f9e5d72a185624e9708f45deadd2bb5c1898befd0f194eb78034
|
data/README.md
CHANGED
@@ -5,7 +5,7 @@ To test on address:
|
|
5
5
|
> **ip_in_range first_in_range last_in_range ip_to_check**
|
6
6
|
|
7
7
|
To verify Received-headers:
|
8
|
-
> **ip_in_range < [email] first_in_range last_in_range
|
8
|
+
> **ip_in_range < [email] first_in_range last_in_range**
|
9
9
|
|
10
10
|
or
|
11
11
|
> **ip_in_range < [email] [range_list.txt]**
|
data/bin/ip_in_range
CHANGED
data/ip_in_range.gemspec
CHANGED
data/lib/basic_logging.rb
CHANGED
@@ -2,8 +2,7 @@
|
|
2
2
|
#encoding: UTF-8
|
3
3
|
=begin
|
4
4
|
/***************************************************************************
|
5
|
-
*
|
6
|
-
* *
|
5
|
+
* 2023-2024, Michael Uplawski <michael.uplawski@uplawski.eu> *
|
7
6
|
* This program is free software; you can redistribute it and/or modify *
|
8
7
|
* it under the terms of the WTFPL 2.0 or later, see *
|
9
8
|
* http://www.wtfpl.net/about/ *
|
@@ -19,10 +18,6 @@
|
|
19
18
|
# Simplified logging.
|
20
19
|
# See example code at the bottom of this file.
|
21
20
|
# Execute this file to see the output.
|
22
|
-
#
|
23
|
-
|
24
|
-
#require 'time'
|
25
|
-
|
26
21
|
module BasicLogging
|
27
22
|
|
28
23
|
DEBUG = 0
|
@@ -53,14 +48,19 @@ module BasicLogging
|
|
53
48
|
|
54
49
|
# set the log level
|
55
50
|
def set_level(lv)
|
56
|
-
if lv.respond_to?(:to_str)
|
51
|
+
if lv.respond_to?(:to_str) && Levels.keys.include?(lv.strip.to_sym)
|
57
52
|
lv = Levels[lv.to_sym]
|
53
|
+
elsif lv.respond_to?(:to_sym) && Levels.keys.include?(lv)
|
54
|
+
lv = Levels[lv]
|
58
55
|
end
|
56
|
+
|
59
57
|
if(!lv || (lv.respond_to?(:to_int) && lv >= DEBUG && lv <= FATAL) )
|
60
58
|
@@log_level = lv
|
61
59
|
else
|
62
|
-
|
63
|
-
|
60
|
+
msg = __FILE__.dup << ": ERROR : invalid log level \"" << lv.to_s << "\""
|
61
|
+
msg << "\n" << "Keepinng old log level " << Levels.keys.detect {| k| Levels[k] == @@log_level}.to_s
|
62
|
+
STDERR.puts msg
|
63
|
+
puts msg
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
@@ -70,6 +70,8 @@ module BasicLogging
|
|
70
70
|
@@target = tg
|
71
71
|
elsif(!File::exist?(tg) || ( File.file?(tg) && File.writable?(tg) ) )
|
72
72
|
@@target = File.open(tg, 'w+')
|
73
|
+
elsif !tg || tg.respond_to?(:to_str) && tg.strip.empty?
|
74
|
+
@@target = nil
|
73
75
|
else
|
74
76
|
STDERR.puts __FILE__.dup << ': ERROR : target ' << tg << ' cannot be set'
|
75
77
|
STDERR.puts "Keeping old target " << @@target.inspect
|
@@ -93,21 +95,52 @@ module BasicLogging
|
|
93
95
|
end
|
94
96
|
end
|
95
97
|
|
98
|
+
def target
|
99
|
+
@@target.path if @@target
|
100
|
+
end
|
101
|
+
|
102
|
+
def level
|
103
|
+
@@log_level.to_s if @@log_level
|
104
|
+
end
|
105
|
+
|
106
|
+
# Clear the log (-file)
|
107
|
+
def clear_log
|
108
|
+
if @@target && @@target.respond_to?(:truncate)
|
109
|
+
lock_target{ @@target.truncate(0) }
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
96
113
|
alias :debug :log
|
97
114
|
alias :info :log
|
98
115
|
alias :warn :log
|
99
116
|
alias :error :log
|
100
117
|
alias :fatal :log
|
101
118
|
|
102
|
-
attr_reader :target, :log_level
|
103
119
|
|
104
120
|
private
|
105
121
|
|
122
|
+
def lock_target(&block)
|
123
|
+
begin
|
124
|
+
if @@target.respond_to?(:flock)
|
125
|
+
@@target.flock(File::LOCK_EX)
|
126
|
+
block.call
|
127
|
+
@@target.flock(File::LOCK_UN)
|
128
|
+
elsif @@target.respond_to?(:to_io)
|
129
|
+
block.call
|
130
|
+
end
|
131
|
+
rescue => ex
|
132
|
+
STDERR.puts __FILE__.dup << ": ERROR : cannot lock target (" << ex.message << ")"
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
106
136
|
# 1 format_log for all loggers.
|
107
137
|
def format_log(message, mlevel)
|
108
|
-
|
109
|
-
|
110
|
-
|
138
|
+
if @@target
|
139
|
+
clname = self.class.name
|
140
|
+
# indicate if a registered class or the registered object of a class is calling.
|
141
|
+
name = self.class == Class ? self.name.dup << ' [class]' : (clname != 'Object' ? clname : 'Top-Level')
|
142
|
+
lock_target{@@target.puts '' << name << ' ' << mlevel.to_s << ' ' << Time.now.strftime("%H:%M:%S:%6N") << ': ' << message.gsub("\n", "\n |")}
|
143
|
+
end
|
111
144
|
end
|
112
145
|
end
|
113
146
|
#---------test: execute file----------
|
data/lib/file_checking.rb
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
***************************************************************************/
|
15
15
|
=end
|
16
16
|
|
17
|
-
require 'filemagic'
|
17
|
+
# require 'filemagic'
|
18
18
|
|
19
19
|
=begin
|
20
20
|
A module to facilitate frequently occuring checks on
|
@@ -86,7 +86,7 @@ module File_Checking
|
|
86
86
|
end
|
87
87
|
return nil
|
88
88
|
end
|
89
|
-
|
89
|
+
=begin
|
90
90
|
def self.magic_check(file, magic)
|
91
91
|
fm = FileMagic.fm
|
92
92
|
fd = fm.fd(File.new(file) ).split(';')[0]
|
@@ -95,7 +95,7 @@ module File_Checking
|
|
95
95
|
end
|
96
96
|
return nil
|
97
97
|
end
|
98
|
-
|
98
|
+
=end
|
99
99
|
end # module
|
100
100
|
|
101
101
|
=begin
|
@@ -107,7 +107,6 @@ msg = file_check('some_file.txt', [:exist?, :readable?, 'writable'])
|
|
107
107
|
# msg = file_check('some_file.txt', [:exist, :readable, 'writable?'])
|
108
108
|
|
109
109
|
msg ||= magic_check('some_file.txt', [:type?], 'OpenDocument Text'
|
110
|
-
msg ||= mime_check('some_file.txt', [:mime?], 'application/vnd.oasis.opendocument.text'
|
111
110
|
puts msg if msg
|
112
111
|
=end
|
113
112
|
# E O F
|
data/lib/ip_range.rb
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
require_relative 'basic_logging'
|
20
20
|
class IPRange
|
21
|
-
|
21
|
+
include BasicLogging
|
22
22
|
|
23
23
|
private
|
24
24
|
|
@@ -54,7 +54,8 @@ class IPRange
|
|
54
54
|
#last IP
|
55
55
|
@last = ip_to_number args[1]
|
56
56
|
if @last && @first && ( @last < @first )
|
57
|
-
error('ERROR! Last IP is smaller than first.
|
57
|
+
error('ERROR! Last IP is smaller than the first (' << @first.to_s << ' - ' << @last.to_s << ')')
|
58
|
+
error('Aborting!')
|
58
59
|
exit false
|
59
60
|
end
|
60
61
|
@vrange = args[0,2]
|
@@ -66,6 +67,8 @@ end
|
|
66
67
|
######### TEST #############
|
67
68
|
if __FILE__ == $0
|
68
69
|
rg = IPRange.new(['192.168.2.33', '192.168.255.150'])
|
70
|
+
#### ERROR :
|
71
|
+
# rg = IPRange.new(['23.122.9.11', '23.122.8.11'])
|
69
72
|
puts rg.first
|
70
73
|
puts rg.last
|
71
74
|
puts rg.in_range? '192.168.1.35'
|
data/lib/version.rb
CHANGED
@@ -13,8 +13,8 @@
|
|
13
13
|
***************************************************************************/
|
14
14
|
=end
|
15
15
|
|
16
|
-
VERSION = 1.
|
17
|
-
SUMMARY="
|
16
|
+
VERSION = 1.05
|
17
|
+
SUMMARY="list of dependencies corrected in the gemfile"
|
18
18
|
AUTHORS=["Michael Uplawski@uplawski.eu"]
|
19
19
|
EMAIL="michael.uplawski@uplawski.eu"
|
20
20
|
AUTHORS_MAIL=["<michael.uplawski@uplawski.eu>"]
|
metadata
CHANGED
@@ -1,15 +1,34 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ip_in_range
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '1.
|
4
|
+
version: '1.05'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Uplawski@uplawski.eu
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
12
|
-
dependencies:
|
10
|
+
date: 2025-02-19 00:00:00.000000000 Z
|
11
|
+
dependencies:
|
12
|
+
- !ruby/object:Gem::Dependency
|
13
|
+
name: mail
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
15
|
+
requirements:
|
16
|
+
- - "~>"
|
17
|
+
- !ruby/object:Gem::Version
|
18
|
+
version: '2.8'
|
19
|
+
- - ">="
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 2.8.1
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - "~>"
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: '2.8'
|
29
|
+
- - ">="
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: 2.8.1
|
13
32
|
description: Verify that an IP is in a range
|
14
33
|
email: "<michael.uplawski@uplawski.eu>"
|
15
34
|
executables:
|
@@ -30,7 +49,6 @@ homepage: ''
|
|
30
49
|
licenses:
|
31
50
|
- Nonstandard
|
32
51
|
metadata: {}
|
33
|
-
post_install_message:
|
34
52
|
rdoc_options: []
|
35
53
|
require_paths:
|
36
54
|
- lib
|
@@ -44,9 +62,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
44
62
|
- - ">="
|
45
63
|
- !ruby/object:Gem::Version
|
46
64
|
version: '0'
|
47
|
-
requirements:
|
48
|
-
|
49
|
-
|
65
|
+
requirements:
|
66
|
+
- mail
|
67
|
+
rubygems_version: 3.6.3
|
50
68
|
specification_version: 4
|
51
|
-
summary:
|
69
|
+
summary: list of dependencies corrected in the gemfile
|
52
70
|
test_files: []
|