require 'mtik' require 'net/ssh' class NEWhubWifiApi_1 attr_accessor :mtik_control_ips_get, :mtik_user, :mtik_password def initialize(mtik_control_ips_get, mtik_user, mtik_password) @mtik_control_ips_get = mtik_control_ips_get @mtik_user = mtik_user @mtik_password = mtik_password end def get_info_subs_from_mik_1(subs_mac, controllers_ip) input_parameters = {:subs_mac => subs_mac, :controllers_ip => controllers_ip} #region get additional information subscribers_mac = subs_mac access_point ="" ssid_ap ="" tx_rate_set = "" tx_rate = "" rx_rate = "" rx_signal = "" uptime = "" packets = "" bytes = "" MTik::verbose = false mikrot_connection1 = MTik::Connection.new :host => controllers_ip, :user => mtik_user, :pass => mtik_password, :conn_timeout => 7, :cmd_timeout => 7 mikrot_connection1.get_reply('/caps-man/registration-table/getall') do |req, sentence| req.reply.each do |reply| if reply.key?('mac-address') #p reply if reply['mac-address'] == subscribers_mac access_point = reply['interface'] ssid_ap = reply['ssid'] tx_rate = reply['tx-rate'] rx_rate = reply['rx-rate'] rx_signal = reply['rx-signal'] uptime = reply['uptime'] packets = reply['packets'] bytes = reply['bytes'] tx_rate_set = reply['tx-rate-set'] end end end end if access_point=="" || ssid_ap=="" || packets=="" access_point = "not on mikrotik controller" ssid_ap = "unknown" tx_rate_set = "unknown" tx_rate = "0" rx_rate = "0" rx_signal = "0" uptime = "0" packets = "0" bytes = "0" end if access_point==nil access_point= "unknown" end if ssid_ap==nil ssid_ap= "unknown" end if tx_rate_set==nil tx_rate_set= "unknown" end if tx_rate==nil tx_rate= "unknown" end if rx_rate==nil rx_rate= "unknown" end if rx_signal==nil rx_signal= "unknown" end if uptime==nil uptime= "unknown" end if packets==nil packets= "unknown" end if bytes==nil bytes= "unknown" end #endregion subscribers_mac+ "---" + access_point + "---" + ssid_ap + "---" + tx_rate_set + "---"+ tx_rate + "---"+ rx_rate + "---"+ rx_signal + "---"+ uptime + "---"+ packets + "---"+ bytes end def get_info_subs_from_mik_ssh(subs_mac, controllers_ip) input_parameters = {:subs_mac => subs_mac, :controllers_ip => controllers_ip} #region get additional information subscribers_mac = subs_mac access_point ="" ssid_ap ="" tx_rate_set = "" tx_rate = "" rx_rate = "" rx_signal = "" uptime = "" packets = "" bytes = "" begin Net::SSH.start(controllers_ip, mtik_user, :password => mtik_password) do |ssh| #result = ssh.exec!("/interface eoip print where tunnel-id=#{tunnel_id}") #p result result = ssh.exec!("/caps-man registration-table print detail value-list where mac-address=#{subs_mac}") p result access_point_reg = /interface:\s(.+)\r\n/ access_point = result.scan(access_point_reg)[0][0] ssid_reg = /ssid:\s(.+)\r\n/ ssid_ap = result.scan(ssid_reg)[0][0] tx_rate_set = "unknown" tx_rate = "0" rx_rate = "0" rx_signal = "0" uptime = "0" packets = "0" bytes = "0" p access_point p ssid_ap #regimsi = /\s+name="(.+)"\s+/ #m1 = regimsi.match(result)[1] #result2 = ssh.exec!("interface bridge port add bridge=#{bridge_name} interface=#{tunnel_name}") end #Net::SSH.stop rescue nil end p "1111111111111111111" if access_point=="" || ssid_ap=="" || packets=="" access_point = "not on mikrotik controller" ssid_ap = "unknown" tx_rate_set = "unknown" tx_rate = "0" rx_rate = "0" rx_signal = "0" uptime = "0" packets = "0" bytes = "0" end if access_point==nil || access_point=='' access_point= "unknown" end if ssid_ap==nil || ssid_ap=='' ssid_ap= "unknown" end if tx_rate_set==nil || tx_rate_set=='' tx_rate_set= "unknown" end if tx_rate==nil || tx_rate=='' tx_rate= "unknown" end if rx_rate==nil || rx_rate=='' rx_rate= "unknown" end if rx_signal==nil || rx_signal=='' rx_signal= "unknown" end if uptime==nil || uptime=='' uptime= "unknown" end if packets==nil || packets=='' packets= "unknown" end if bytes==nil || bytes=='' bytes= "unknown" end #endregion subscribers_mac+ "---" + access_point + "---" + ssid_ap + "---" + tx_rate_set + "---"+ tx_rate + "---"+ rx_rate + "---"+ rx_signal + "---"+ uptime + "---"+ packets + "---"+ bytes end end