freewifi 0.1.9 → 0.2.4
Sign up to get free protection for your applications and to get access to all the features.
- 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|
|