freewifi 0.1.9 → 0.2.4
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/.idea/freewifi.iml +39 -1
- data/.idea/runConfigurations/get_iwag_data.xml +21 -0
- data/.idea/workspace.xml +239 -185
- data/Gemfile +1 -1
- data/freewifi.gemspec +23 -23
- data/lib/freewifi.rb +67 -34
- data/lib/freewifi/additional/additional_functions.rb +1 -1
- data/lib/freewifi/cisco/any/cisco_schemes_conf_gen.rb +2 -1
- data/lib/freewifi/cisco/iwag/get_iwag_data.rb +91 -0
- data/lib/freewifi/cisco/iwag/iwag_database_worker.rb +24 -0
- data/lib/freewifi/cisco/iwag/iwag_telnet_connector.rb +21 -7
- data/lib/freewifi/config.rb +2 -1
- data/lib/freewifi/general/wifi_portal_procedures.rb +774 -388
- data/lib/freewifi/mikrotik/automation/get_data_ssh_fun.rb +2 -0
- data/lib/freewifi/mikrotik/newhub_mtik_api.rb +4 -4
- data/lib/freewifi/mikrotik/newhub_mtik_ssh.rb +12 -12
- data/lib/freewifi/mikrotik/schemes_conf_gen.rb +2 -2
- data/lib/freewifi/version.rb +1 -1
- metadata +10 -6
data/Gemfile
CHANGED
data/freewifi.gemspec
CHANGED
@@ -4,43 +4,43 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require "freewifi/version"
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
7
|
+
spec.name = 'freewifi'
|
8
8
|
spec.version = Freewifi_1::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
9
|
+
spec.authors = ['Dzmitry Buynovskiy']
|
10
|
+
spec.email = ['imperituro.ard@gmail.com']
|
11
11
|
|
12
12
|
spec.summary = %q{gem for Public WiFi}
|
13
13
|
spec.description = %q{description for my gem}
|
14
|
-
spec.homepage =
|
15
|
-
spec.license =
|
14
|
+
spec.homepage = 'https://rubygems.org/gems/freewifi'
|
15
|
+
spec.license = 'MIT'
|
16
16
|
|
17
17
|
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
18
18
|
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
19
19
|
if spec.respond_to?(:metadata)
|
20
|
-
spec.metadata[
|
20
|
+
spec.metadata['allowed_push_host'] = 'https://rubygems.org/'
|
21
21
|
else
|
22
|
-
raise
|
23
|
-
|
22
|
+
raise 'RubyGems 2.0 or newer is required to protect against ' \
|
23
|
+
'public gem pushes.'
|
24
24
|
end
|
25
25
|
|
26
26
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
27
27
|
f.match(%r{^(test|spec|features)/})
|
28
28
|
end
|
29
|
-
spec.bindir =
|
29
|
+
spec.bindir = 'exe'
|
30
30
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
31
|
-
spec.require_paths = [
|
31
|
+
spec.require_paths = ['lib']
|
32
32
|
|
33
|
-
spec.add_development_dependency
|
34
|
-
spec.add_development_dependency
|
35
|
-
spec.add_development_dependency
|
36
|
-
spec.add_development_dependency
|
37
|
-
spec.add_development_dependency
|
38
|
-
spec.add_development_dependency
|
39
|
-
spec.add_development_dependency
|
40
|
-
spec.add_development_dependency
|
41
|
-
spec.add_development_dependency
|
42
|
-
spec.add_development_dependency
|
43
|
-
spec.add_development_dependency
|
44
|
-
spec.add_development_dependency
|
45
|
-
spec.add_development_dependency
|
33
|
+
spec.add_development_dependency 'bundler', '2.1.4'
|
34
|
+
spec.add_development_dependency 'rake', '13.0.1'
|
35
|
+
spec.add_development_dependency 'minitest', '~> 5.0'
|
36
|
+
spec.add_development_dependency 'net-ssh', '4.0.1'
|
37
|
+
spec.add_development_dependency 'json', '2.3.0'
|
38
|
+
spec.add_development_dependency 'ipaddr', '1.2.2'
|
39
|
+
spec.add_development_dependency 'date', '3.0.0'
|
40
|
+
spec.add_development_dependency 'mysql2', '0.5.3'
|
41
|
+
spec.add_development_dependency 'mongo', '2.11.4'
|
42
|
+
spec.add_development_dependency 'translit', '0.1.5'
|
43
|
+
spec.add_development_dependency 'savon', '2.12.0'
|
44
|
+
spec.add_development_dependency 'net-telnet', '0.2.0'
|
45
|
+
spec.add_development_dependency 'mtik', '4.0.3'
|
46
46
|
end
|
data/lib/freewifi.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
#$LOAD_PATH.unshift File.expand_path("../freewifi", __dir__)
|
2
|
-
$LOAD_PATH.unshift File.expand_path(
|
3
|
-
$LOAD_PATH.unshift File.expand_path(
|
4
|
-
$LOAD_PATH.unshift File.expand_path(
|
5
|
-
$LOAD_PATH.unshift File.expand_path(
|
6
|
-
$LOAD_PATH.unshift File.expand_path(
|
7
|
-
$LOAD_PATH.unshift File.expand_path(
|
2
|
+
$LOAD_PATH.unshift File.expand_path('../mikrotik', __dir__)
|
3
|
+
$LOAD_PATH.unshift File.expand_path('../database/mysql', __dir__)
|
4
|
+
$LOAD_PATH.unshift File.expand_path('../database/mongo', __dir__)
|
5
|
+
$LOAD_PATH.unshift File.expand_path('../additional', __dir__)
|
6
|
+
$LOAD_PATH.unshift File.expand_path('../general', __dir__)
|
7
|
+
$LOAD_PATH.unshift File.expand_path('../huawei', __dir__)
|
8
8
|
|
9
9
|
require "freewifi/version"
|
10
10
|
require "freewifi/params"
|
@@ -66,8 +66,7 @@ module Freewifi_1
|
|
66
66
|
capsman_password,
|
67
67
|
hub_vip,
|
68
68
|
ap_admin_password,
|
69
|
-
capsman_ip_wifi
|
70
|
-
)
|
69
|
+
capsman_ip_wifi)
|
71
70
|
|
72
71
|
@mtik_hub1_ip = hub1ip
|
73
72
|
@mtik_hub2_ip = hub2ip
|
@@ -87,8 +86,6 @@ module Freewifi_1
|
|
87
86
|
@hub_vip = hub_vip
|
88
87
|
@ap_admin_password = ap_admin_password
|
89
88
|
@capsman_ip_wifi = capsman_ip_wifi
|
90
|
-
|
91
|
-
|
92
89
|
end
|
93
90
|
|
94
91
|
|
@@ -138,7 +135,7 @@ module Freewifi_1
|
|
138
135
|
:subscribers_contacts => subscribers_contacts,
|
139
136
|
:wifi_ssid => wifi_ssid,
|
140
137
|
:portalstyle => portalstyle,
|
141
|
-
:ap =>
|
138
|
+
:ap => 'MikroTik',
|
142
139
|
:ap_serial_number => ap_serial_number,
|
143
140
|
:ap_model => ap_model,
|
144
141
|
:description => description,
|
@@ -149,7 +146,7 @@ module Freewifi_1
|
|
149
146
|
}
|
150
147
|
|
151
148
|
mongo_response = mongo_connector_wifi_1.data_ap_auto_created_insert_1(data)
|
152
|
-
if mongo_response[:code]==200
|
149
|
+
if mongo_response[:code] == 200
|
153
150
|
|
154
151
|
newcapsman1 = NEWhubWifi_1.new
|
155
152
|
threads_1 = []
|
@@ -160,27 +157,27 @@ module Freewifi_1
|
|
160
157
|
|
161
158
|
input_intern_data = {:wifi_ssid_processed => wifi_ssid_processed, :company_name_processed => company_name_processed, :capsman => capsman}
|
162
159
|
|
163
|
-
mongo_connector_wifi_1.audit_logger_wifi_1(
|
160
|
+
mongo_connector_wifi_1.audit_logger_wifi_1('add_mikrotik_ap_mobile_1', remote_ip, input_intern_data, nil, real_ip, subscriber_ip)
|
164
161
|
|
165
162
|
newcapsman1.set_capsman_config_1(wifi_ssid_processed, capsman, capsman_user, capsman_password, sim_ipaddress, company_name_processed)
|
166
163
|
end
|
167
164
|
end
|
168
165
|
threads_1.each(&:join)
|
169
166
|
|
170
|
-
output_params = {:code => 200, :result =>
|
167
|
+
output_params = {:code => 200, :result => 'Request completed successfully', :body => {:tunnel_id => tunnel_addition[:body][:eoip_tunnel_id], :tunnel_name => tunnel_addition[:body][:eoip_tunnel_name]}}
|
171
168
|
else
|
172
|
-
output_params = {:code => 400, :result =>
|
169
|
+
output_params = {:code => 400, :result => 'Something wrong with insertion to mongo'}
|
173
170
|
end
|
174
171
|
else
|
175
172
|
output_params = {:code => 401, :result => tunnel_addition[:result]}
|
176
173
|
end
|
177
174
|
else
|
178
|
-
output_params = {:code => 202, :result =>
|
175
|
+
output_params = {:code => 202, :result => 'AP exists', :body => {:tunnel_id => ap_state[:tunnel_id].to_s}}
|
179
176
|
end
|
180
177
|
rescue
|
181
|
-
output_params = {:code => 507, :result =>
|
178
|
+
output_params = {:code => 507, :result => 'Unknown SDK error'}
|
182
179
|
end
|
183
|
-
mongo_connector_wifi_1.audit_logger_wifi_1(
|
180
|
+
mongo_connector_wifi_1.audit_logger_wifi_1('add_mikrotik_ap_mobile_1', remote_ip, input_params, output_params, real_ip, subscriber_ip)
|
184
181
|
#additional_func.printer_texter({:input_params => input_params, :output_params => output_params, :procedure => "add_mikrotik_ap_mobile", :file => "freewifi.rb"}, "info")
|
185
182
|
output_params
|
186
183
|
end
|
@@ -214,9 +211,9 @@ module Freewifi_1
|
|
214
211
|
output_params = {:code => res[:code], :result => res[:result], :body => {:ap_configuration => conf_1}}
|
215
212
|
|
216
213
|
rescue
|
217
|
-
output_params = {:code => 507, :result =>
|
214
|
+
output_params = {:code => 507, :result => 'Unknown SDK error'}
|
218
215
|
end
|
219
|
-
mongo_connector_wifi_1.audit_logger_wifi_1(
|
216
|
+
mongo_connector_wifi_1.audit_logger_wifi_1('mtik_sch1_config_gen_1', remote_ip, input_params, conf_1, real_ip, subscriber_ip)
|
220
217
|
output_params
|
221
218
|
end
|
222
219
|
|
@@ -246,10 +243,11 @@ module Freewifi_1
|
|
246
243
|
def test()
|
247
244
|
newcapsman1 = NEWhubWifi_1.new
|
248
245
|
|
246
|
+
capsman_ip = ['1.1.1.1']
|
249
247
|
threads = []
|
250
248
|
capsman_ip.each do |capsman|
|
251
249
|
threads << Thread.new do
|
252
|
-
newcapsman1.set_capsman_config_1(
|
250
|
+
newcapsman1.set_capsman_config_1('test_ss', capsman, capsman_user, capsman_password, '172.25.208.14', 'test_company')
|
253
251
|
end
|
254
252
|
end
|
255
253
|
threads.each(&:join)
|
@@ -273,8 +271,6 @@ class PortalFwifi_1
|
|
273
271
|
:mtik_user,
|
274
272
|
:mtik_password,
|
275
273
|
:mongo_connector_wifi_1,
|
276
|
-
:remote_ip,
|
277
|
-
:real_ip,
|
278
274
|
:telegram_api_url,
|
279
275
|
:telegram_chat_id,
|
280
276
|
:mongo_ip,
|
@@ -297,14 +293,17 @@ class PortalFwifi_1
|
|
297
293
|
mongo_ip,
|
298
294
|
mongo_port,
|
299
295
|
mongo_database,
|
300
|
-
remote_ip,
|
301
|
-
real_ip,
|
302
296
|
hua_wlc_1_ip,
|
303
297
|
hua_wlc_2_ip,
|
304
298
|
hua_wlc_login,
|
305
299
|
hua_wlc_password,
|
306
300
|
telegram_api_url,
|
307
|
-
telegram_chat_id
|
301
|
+
telegram_chat_id,
|
302
|
+
iwag2_host,
|
303
|
+
iwag2_username,
|
304
|
+
iwag2_password,
|
305
|
+
iwag1_port=22,
|
306
|
+
iwag2_port=22
|
308
307
|
)
|
309
308
|
|
310
309
|
@general_procedures = WiFiPortal_1.new(apigw_wsdl,
|
@@ -315,19 +314,22 @@ class PortalFwifi_1
|
|
315
314
|
iwag1_host,
|
316
315
|
iwag_username,
|
317
316
|
iwag_password,
|
317
|
+
iwag1_port,
|
318
318
|
mtik_control_ips_get,
|
319
319
|
mtik_user,
|
320
320
|
mtik_password,
|
321
321
|
hua_wlc_1_ip,
|
322
322
|
hua_wlc_2_ip,
|
323
323
|
hua_wlc_login,
|
324
|
-
hua_wlc_password
|
324
|
+
hua_wlc_password,
|
325
|
+
iwag2_host,
|
326
|
+
iwag2_username,
|
327
|
+
iwag2_password,
|
328
|
+
iwag2_port
|
325
329
|
)
|
326
330
|
@mtik_control_ips_get = mtik_control_ips_get
|
327
331
|
@mtik_user = mtik_user
|
328
332
|
@mtik_password = mtik_password
|
329
|
-
@remote_ip = remote_ip
|
330
|
-
@real_ip = real_ip
|
331
333
|
@additional_func_wifi_1 = InternalFunc_1.new
|
332
334
|
@telegram_api_url = telegram_api_url
|
333
335
|
@telegram_chat_id = telegram_chat_id
|
@@ -337,7 +339,7 @@ class PortalFwifi_1
|
|
337
339
|
end
|
338
340
|
|
339
341
|
|
340
|
-
def wifi_get_subs_info_return_1(ipaddress)
|
342
|
+
def wifi_get_subs_info_return_1(ipaddress, remote_ip, real_ip)
|
341
343
|
input_params = {:ipaddress => ipaddress}
|
342
344
|
output_params = {}
|
343
345
|
|
@@ -346,17 +348,48 @@ class PortalFwifi_1
|
|
346
348
|
resp_procedure = general_procedures.get_subs_info_return_1(ipaddress)
|
347
349
|
output_params = resp_procedure
|
348
350
|
rescue
|
349
|
-
output_params = {:code => 507, :result =>
|
351
|
+
output_params = {:code => 507, :result => 'Unknown SDK error'}
|
352
|
+
end
|
353
|
+
end
|
354
|
+
subs_info_ret_1_thr1.join
|
355
|
+
|
356
|
+
subs_info_ret_1_thr2 = Thread.new do
|
357
|
+
begin
|
358
|
+
p 'mongo'
|
359
|
+
#mongo_connector_wifi_1 = MongoWifiCl_1.new(mongo_ip, mongo_port, mongo_database)
|
360
|
+
#mongo_connector_wifi_1.audit_logger_wifi_portal_1("wifi_get_subs_info_return_1", remote_ip, input_params, output_params, real_ip)
|
361
|
+
rescue
|
362
|
+
additional_func_wifi_1.printer_texter_wifi_1({:input_params => input_params, :output_params => {:result => 'mongo failed'}, :procedure => 'wifi_get_subs_info_return_1', :file => 'freewifi.rb'}, 'debug')
|
363
|
+
additional_func_wifi_1.telegram_message_1("{:function => \"wifi_get_subs_info_return_1\", :result => \"failed communicate with mongo database\", :sdk => \"freewifi\"}", telegram_api_url, telegram_chat_id)
|
364
|
+
end
|
365
|
+
end
|
366
|
+
subs_info_ret_1_thr2.join
|
367
|
+
|
368
|
+
output_params
|
369
|
+
end
|
370
|
+
|
371
|
+
|
372
|
+
def wifi_get_subs_inf_ret_ssh_1(ipaddress, remote_ip, real_ip)
|
373
|
+
input_params = {:ipaddress => ipaddress}
|
374
|
+
output_params = {}
|
375
|
+
|
376
|
+
subs_info_ret_1_thr1 = Thread.new do
|
377
|
+
begin
|
378
|
+
resp_procedure = general_procedures.get_subs_info_ret_ssh_1(ipaddress)
|
379
|
+
output_params = resp_procedure
|
380
|
+
rescue
|
381
|
+
output_params = {:code => 507, :result => 'Unknown SDK error'}
|
350
382
|
end
|
351
383
|
end
|
352
384
|
subs_info_ret_1_thr1.join
|
353
385
|
|
354
386
|
subs_info_ret_1_thr2 = Thread.new do
|
355
387
|
begin
|
356
|
-
|
357
|
-
|
388
|
+
p "mongo"
|
389
|
+
#mongo_connector_wifi_1 = MongoWifiCl_1.new(mongo_ip, mongo_port, mongo_database)
|
390
|
+
#mongo_connector_wifi_1.audit_logger_wifi_portal_1("wifi_get_subs_info_return_1", remote_ip, input_params, output_params, real_ip)
|
358
391
|
rescue
|
359
|
-
additional_func_wifi_1.printer_texter_wifi_1({:input_params => input_params, :output_params => {:result => "mongo failed"}, :procedure => "wifi_get_subs_info_return_1", :file =>
|
392
|
+
additional_func_wifi_1.printer_texter_wifi_1({:input_params => input_params, :output_params => {:result => "mongo failed"}, :procedure => "wifi_get_subs_info_return_1", :file => 'freewifi.rb'}, "debug")
|
360
393
|
additional_func_wifi_1.telegram_message_1("{:function => \"wifi_get_subs_info_return_1\", :result => \"failed communicate with mongo database\", :sdk => \"freewifi\"}", telegram_api_url, telegram_chat_id)
|
361
394
|
end
|
362
395
|
end
|
@@ -27,7 +27,7 @@ class InternalFunc_1
|
|
27
27
|
:body => {:telegram_resp => JSON.parse(body.to_s),
|
28
28
|
:description => "Telegram message to telegram_chat_id: #{telegram_chat_id.to_s}"}}
|
29
29
|
rescue
|
30
|
-
return {:code => 507, :result =>
|
30
|
+
return {:code => 507, :result => 'Unknown SDK error'}
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
@@ -0,0 +1,91 @@
|
|
1
|
+
require 'net/ssh'
|
2
|
+
|
3
|
+
class IwagRequester
|
4
|
+
|
5
|
+
attr_accessor :iwag_host, :iwag_login, :iwag_password, :iwag_port
|
6
|
+
|
7
|
+
def initialize(iwag_host, iwag_login, iwag_password, iwag_port)
|
8
|
+
@iwag_host = iwag_host
|
9
|
+
@iwag_login = iwag_login
|
10
|
+
@iwag_password = iwag_password
|
11
|
+
@iwag_port = iwag_port
|
12
|
+
end
|
13
|
+
|
14
|
+
def mac_parse(mac)
|
15
|
+
a = mac.upcase
|
16
|
+
pos = a[0] + a[1]
|
17
|
+
if pos == "01"
|
18
|
+
subscribers_mac = a[2] + a[3] + ":" + a[5] + a[6] + ":" + a[7] + a[8] + ":" + a[10] + a[11] + ":" + a[12] + a[13] + ":" + a[15] + a[16]
|
19
|
+
else
|
20
|
+
subscribers_mac = a[0] + a[1] + ":" + a[2] + a[3] + ":" + a[5] + a[6] + ":" + a[7] + a[8] + ":" + a[10] + a[11] + ":" + a[12] + a[13]
|
21
|
+
end
|
22
|
+
subscribers_mac
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
def iwag_get_dhcp_binding_ssh(bind_ip)
|
27
|
+
mac = "Unknown"
|
28
|
+
accessinterface = "Unknown"
|
29
|
+
hostname = "Unknown"
|
30
|
+
ssid = "Unknown"
|
31
|
+
iwag_thr = Thread.new do
|
32
|
+
Net::SSH.start(iwag_host, iwag_login, :password => iwag_password, :port=>iwag_port) do |session|
|
33
|
+
answ_bind = session.exec!("show ip dhcp binding #{bind_ip}")
|
34
|
+
regexp_main = /\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}\s{1,20}(\w{2,4}.\w{2,4}.\w{2,4}.\w{2,4})|\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}\s{1,20}(\w{4}.\w{4}.\w{4})/
|
35
|
+
#regexp_main = /\r\n(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})\s+(\S{13,18})\s+Sep 18 2020 07:44 PM\s+Automatic\s+Active\s+Tunnel201\r\n/
|
36
|
+
ggg7 = answ_bind.match(regexp_main)
|
37
|
+
begin
|
38
|
+
if ggg7[1] != nil
|
39
|
+
mac = mac_parse(ggg7[1])
|
40
|
+
else
|
41
|
+
mac = mac_parse(ggg7[2])
|
42
|
+
end
|
43
|
+
rescue
|
44
|
+
mac = "Unknown"
|
45
|
+
end
|
46
|
+
regexp_remote_id = /Remote id :\s(\S{2,100})/
|
47
|
+
regexp_tunnel = /Active\s{2,40}(\S{2,40})|Selecting\s{2,40}(\S{2,40})/
|
48
|
+
regexp_curcuit_id = /Circuit id :\s(\S{2,100})/
|
49
|
+
ggg9 = answ_bind.match(regexp_tunnel)
|
50
|
+
|
51
|
+
begin
|
52
|
+
if ggg9[1] != nil
|
53
|
+
accessinterface = ggg9[1]
|
54
|
+
else
|
55
|
+
accessinterface = ggg9[2]
|
56
|
+
end
|
57
|
+
rescue
|
58
|
+
accessinterface = "Unknown"
|
59
|
+
end
|
60
|
+
ggg8 = answ_bind.match(regexp_remote_id)
|
61
|
+
ggg10 = answ_bind.match(regexp_curcuit_id)
|
62
|
+
begin
|
63
|
+
a1 = ggg8[1].split(":")
|
64
|
+
hostname = a1[0]
|
65
|
+
ssid = a1[1]
|
66
|
+
rescue
|
67
|
+
begin
|
68
|
+
if ggg8[1] != nil
|
69
|
+
if ggg8[1].include?("wireless_public_interface")
|
70
|
+
hostname = ggg10[1]
|
71
|
+
ssid = "Unknown"
|
72
|
+
else
|
73
|
+
hostname = ggg8[1]
|
74
|
+
ssid = "Unknown"
|
75
|
+
end
|
76
|
+
else
|
77
|
+
ssid = "Unknown"
|
78
|
+
hostname = "Unknown"
|
79
|
+
end
|
80
|
+
rescue
|
81
|
+
ssid = "Unknown"
|
82
|
+
hostname = "Unknown"
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
iwag_thr.join
|
88
|
+
{"mac": mac, "iwaginterface": accessinterface, "aphostname": hostname, "SSID": ssid}
|
89
|
+
end
|
90
|
+
|
91
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
class IwagDbCache
|
4
|
+
|
5
|
+
attr_accessor :db_host, :db_login, :db_password
|
6
|
+
|
7
|
+
def initialize(db_host, db_login, db_password)
|
8
|
+
@db_host = db_host
|
9
|
+
@db_login = db_login
|
10
|
+
@db_password = db_password
|
11
|
+
end
|
12
|
+
|
13
|
+
def check_db_exists(ip)
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
def insert_new_cache()
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
end
|
24
|
+
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'net-telnet'
|
2
2
|
require 'net/ssh'
|
3
|
+
require 'date'
|
3
4
|
|
4
5
|
class CSRtelnet_1
|
5
6
|
|
@@ -15,17 +16,19 @@ class CSRtelnet_1
|
|
15
16
|
|
16
17
|
subscribers_mac = ""
|
17
18
|
|
18
|
-
begin
|
19
|
+
#begin
|
19
20
|
|
20
21
|
dump =""
|
21
|
-
connection = Net::Telnet.new( "Host" =>
|
22
|
+
connection = Net::Telnet.new( "Host" => iwag1_host, "Timeout" => false, "Prompt" => /.*#/ ) { |str| }
|
22
23
|
connection.login({ "Name" => iwag_username, "Password" => iwag_password, "LoginPrompt" => /Username:/ }) { |str| }
|
23
24
|
connection.cmd("show ip dhcp binding #{ipaddress}") {
|
24
25
|
|c|
|
26
|
+
p c
|
25
27
|
dump << c
|
26
28
|
}
|
27
29
|
connection.close
|
28
30
|
as = dump.split("\n")
|
31
|
+
p as
|
29
32
|
reer = as[4].split(" ")
|
30
33
|
|
31
34
|
ma = reer[1].to_s.upcase
|
@@ -37,15 +40,26 @@ class CSRtelnet_1
|
|
37
40
|
end
|
38
41
|
|
39
42
|
|
40
|
-
rescue
|
41
|
-
|
42
|
-
end
|
43
|
+
#rescue
|
44
|
+
# subscribers_mac = "unknown"
|
45
|
+
#end
|
43
46
|
|
44
47
|
return subscribers_mac
|
45
48
|
|
46
49
|
end
|
47
50
|
|
48
51
|
|
52
|
+
#test function. Not used
|
53
|
+
def get_iwag_info_ssh_1(ipaddress)
|
54
|
+
p DateTime.now
|
55
|
+
Net::SSH.start(iwag1_host, iwag_username, :password => iwag_password) do |ssh|
|
56
|
+
result = ssh.exec!("show ip dhcp binding #{ipaddress}\n")
|
57
|
+
p result
|
58
|
+
end
|
59
|
+
p DateTime.now
|
60
|
+
end
|
61
|
+
|
62
|
+
|
49
63
|
|
50
64
|
def return_iwag_access_interface_1(ipaddress)
|
51
65
|
host_iwag = iwag1_host
|
@@ -55,7 +69,7 @@ class CSRtelnet_1
|
|
55
69
|
|
56
70
|
dump =""
|
57
71
|
begin
|
58
|
-
connection = Net::Telnet.new("Host" => host_iwag, "Timeout" => false, "Prompt" =>
|
72
|
+
connection = Net::Telnet.new("Host" => host_iwag, "Timeout" => false, "Prompt" => /.*#/) {|str| print str}
|
59
73
|
connection.login({"Name" => username_iwag, "Password" => password_iwag, "LoginPrompt" => /Username:/}) {|str| print str}
|
60
74
|
connection.cmd("show ip dhcp binding #{ipaddress}") {
|
61
75
|
|c|
|
@@ -73,7 +87,7 @@ class CSRtelnet_1
|
|
73
87
|
end
|
74
88
|
rescue
|
75
89
|
begin
|
76
|
-
connection = Net::Telnet.new("Host" => host_iwag, "Timeout" => false, "Prompt" =>
|
90
|
+
connection = Net::Telnet.new("Host" => host_iwag, "Timeout" => false, "Prompt" => /.*#/) {|str| print str}
|
77
91
|
connection.login({"Name" => username_iwag, "Password" => password_iwag, "LoginPrompt" => /Username:/}) {|str| print str}
|
78
92
|
connection.cmd("show ip dhcp binding #{ipaddress}") {
|
79
93
|
|c|
|