def send_api(host,port,data): try: send_s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) print 'start connect proxy server/client' send_s.connect((host,port)) RSA_signal,random_num = 'RSA_KEY_Virification', str(random_pass.randomPassword(10)) encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,random_num) send_s.sendall(json.dumps( (RSA_signal,encrypted_data, random_num) )) print '\033[34;1m sending Monitor Data to proxy server/client .... \033[0m' #判断RSA认证结果 RSA_status=send_s.recv(1024) if RSA_status == 'RSA_OK': #RSA认证通过后,发送监控项数据改变,这里有本机、代理。如何判断? print RSA_status send_s.send('MonitorDataChange'+'|'+str(len(data))) transfer_status=send_s.recv(1024) if transfer_status=='ReadyToReceiveData': #send_s.send(str(len(proxy_monitor_list_json))) print data send_s.send(data) #break else: pass else: print 'RSA Virification error!' except socket.error: print socket.error finally: send_s.close()
def push_status_data(host, port): try: #connect server let the status data into redis psh_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) psh_s.connect((host, port)) RSA_signal, random_num = 'RSA_KEY_Virification', str( random_pass.randomPassword(10)) encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file, random_num) psh_s.sendall(json.dumps((RSA_signal, encrypted_data, random_num))) print '\033[34;1m sending status to Monitor server .... \033[0m' #判断RSA认证结果 RSA_status = psh_s.recv(1024) if RSA_status == 'RSA_OK': psh_s.send('StatusDataIntoRedis') status = psh_s.recv(1024) if status == "StatusDataIntoRedis_OK": return pull_status_data() else: pass except socket.error: pprint(socket.error, 'err', exit=1) #sys.exit("Socket connect error") finally: psh_s.close()
def send2client(host,port,data): try: send_cs=socket.socket(socket.AF_INET,socket.SOCK_STREAM) print 'start connect client host' RSA_signal,random_num = 'RSA_KEY_Virification', str(random_pass.randomPassword(10)) encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,random_num) send_cs.sendall(json.dumps( (RSA_signal,encrypted_data, random_num) )) print '\033[34;1m sending Monitor Data to proxy server .... \033[0m' #判断RSA认证结果 RSA_status=send_cs.recv(1024) if RSA_status == 'RSA_OK': #RSA认证通过后,发生数据状态, send_cs.send('MonitorServicesDataChange') transfer_status=send_cs.recv(1024) if transfer_status=='ReadyToReceiveData': #向client host端发送该主机监控数据 send_cs.send( json.dumps(data) ) #break else: data_str=send_cs.recv(1024) monitor_dic=json.loads(data_str) else: print 'RSA Virification error!' except socket.error: print socket.error finally: send_cs.close()
def send_data(is2client,host,port,data): try: send_cs=socket.socket(socket.AF_INET,socket.SOCK_STREAM) send_cs.connect((host, port)) print 'start connect client/server host' RSA_signal,random_num = 'RSA_KEY_Virification', str(random_pass.randomPassword(10)) encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,random_num) print '1----' send_cs.send(json.dumps( (RSA_signal,encrypted_data, random_num) )) print '\033[34;1m sending Monitor Data to proxy server .... \033[0m' #判断RSA认证结果 RSA_status=send_cs.recv(1024) if RSA_status == 'RSA_OK': #RSA认证通过后,发生数据状态, if is2client: #向client端分发监控项数据 send_cs.send('MonitorDataChange'+'|'+str(len(data))) print 'MonitorDataChange........' else: #向server端上传资产数据 send_cs.send('AssetsDataCollect'+'|'+str(len(data))+'|'+'proxy') print 'AssetsDataCollect...............' transfer_status=send_cs.recv(1024) if transfer_status=='ReadyToReceiveData': #向client/server host端发送该主机监控数据/或资产数据 #send_cs.send(str(len(json.dumps(data)))) send_cs.send( json.dumps(data) ) else: print 'RSA Virification error!' except socket.error: print socket.error finally: send_cs.close()
def send_api(host, port, data): try: send_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) print 'start connect proxy server/client' send_s.connect((host, port)) RSA_signal, random_num = 'RSA_KEY_Virification', str( random_pass.randomPassword(10)) encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file, random_num) send_s.sendall(json.dumps((RSA_signal, encrypted_data, random_num))) print '\033[34;1m sending Monitor Data to proxy server/client .... \033[0m' #判断RSA认证结果 RSA_status = send_s.recv(1024) if RSA_status == 'RSA_OK': #RSA认证通过后,发送监控项数据改变,这里有本机、代理。如何判断? print RSA_status send_s.send('MonitorDataChange' + '|' + str(len(data))) transfer_status = send_s.recv(1024) if transfer_status == 'ReadyToReceiveData': #send_s.send(str(len(proxy_monitor_list_json))) print data send_s.send(data) #break else: pass else: print 'RSA Virification error!' except socket.error: print socket.error finally: send_s.close()
def socket_test(): status_dic['hostname'] = hostname s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((HOST, PORT)) RSA_signal, random_num = 'RSA_KEY_Virification', str( random_pass.randomPassword(10)) encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file, random_num) s.sendall(json.dumps((RSA_signal, encrypted_data, random_num))) print '\033[34;1m sending status to Monitor server .... \033[0m' jsondumps = json.dumps(status_dic) sendSignalAndSize = 'datasizetest' s.send(sendSignalAndSize) flag = s.recv(1024) print flag get_data = recv_data = s.recv(1024) data3 = s.recv(1024) #print get_data print data3 #发送标记'OK'不行,这里会有一个粘包的问题。 ''' while len(recv_data): recv_data = s.recv(1024) get_data+=recv_data print type(json.loads(get_data)) ''' s.close() #with open('d:\info_test.json', 'wb') as f: #json.dump(status_dic, f) print "wait for the next round..."
def get_monitor_dic(): '''第一次连接时,请求得到所有以该代理为服务端的主机监控信息''' try: req_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) req_s.connect((HOST, PORT)) RSA_signal,random_num = 'RSA_KEY_Virification', str(random_pass.randomPassword(10)) encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,random_num) req_s.sendall(json.dumps( (RSA_signal,encrypted_data, random_num) )) print 'get assets monitor configure info from server .... ' req_s.send('GetMonitorItems') #如果服务端查不到数据时,会发生异常。 monitor_data = req_s.recv(1024) #该客户端没有被监控 if monitor_data=='no_monitor': req_s.send('get_data') #break else: monitor_dic=json.loads(monitor_data) #调用得到的监控数据方法 get_interval_dic(monitor_dic) #send message req_s.send('get_data') #with open('d:\info_test.json', 'wb') as f: #json.dump(status_dic, f) #interval_dic = except socket.error: print socket.error finally: req_s.close()
def send_data(result_dic): try: client_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client_s.connect((HOST, PORT)) RSA_signal,random_num = 'RSA_KEY_Virification', str(random_pass.randomPassword(10)) encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,random_num) client_s.sendall(json.dumps( (RSA_signal,encrypted_data, random_num) )) print '\033[34;1m sending status to Monitor server .... \033[0m' #判断RSA认证结果 RSA_status=client_s.recv(1024) if RSA_status == 'RSA_OK': #RSA认证通过后,发生数据状态 result_dic_json=json.dumps(result_dic) sendSignalAndSize = 'MonitorResultDataCollect'+'|'+str(len(result_dic_json))+'|'+'client' client_s.send(sendSignalAndSize) transferSignal = client_s.recv(1024) if transferSignal == 'ReadyToReceiveData': client_s.send(result_dic_json) else: pass except socket.error: print socket.error finally: client_s.close() print "wait for the next round..."
def socket_test(): status_dic['hostname'] = hostname s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((HOST, PORT)) RSA_signal,random_num = 'RSA_KEY_Virification', str(random_pass.randomPassword(10)) encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,random_num) s.sendall(json.dumps( (RSA_signal,encrypted_data, random_num) )) print '\033[34;1m sending status to Monitor server .... \033[0m' jsondumps = json.dumps(status_dic) sendSignalAndSize = 'datasizetest' s.send(sendSignalAndSize) flag=s.recv(1024) print flag get_data=recv_data=s.recv(1024) data3=s.recv(1024) #print get_data print data3 #发送标记'OK'不行,这里会有一个粘包的问题。 ''' while len(recv_data): recv_data = s.recv(1024) get_data+=recv_data print type(json.loads(get_data)) ''' s.close() #with open('d:\info_test.json', 'wb') as f: #json.dump(status_dic, f) print "wait for the next round..."
def get_monitor_dic(): '''第一次连接时,请求得到所有以该代理为服务端的主机监控信息''' try: req_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) req_s.connect((HOST, PORT)) RSA_signal, random_num = 'RSA_KEY_Virification', str( random_pass.randomPassword(10)) encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file, random_num) req_s.sendall(json.dumps((RSA_signal, encrypted_data, random_num))) print 'get assets monitor configure info from server .... ' req_s.send('GetMonitorItems') #如果服务端查不到数据时,会发生异常。 monitor_data = req_s.recv(1024) #该客户端没有被监控 if monitor_data == 'no_monitor': req_s.send('get_data') #break else: monitor_dic = json.loads(monitor_data) #调用得到的监控数据方法 get_interval_dic(monitor_dic) #send message req_s.send('get_data') #with open('d:\info_test.json', 'wb') as f: #json.dump(status_dic, f) #interval_dic = except socket.error: print socket.error finally: req_s.close()
def send2client(host, port, data): try: send_cs = socket.socket(socket.AF_INET, socket.SOCK_STREAM) print 'start connect client host' RSA_signal, random_num = 'RSA_KEY_Virification', str( random_pass.randomPassword(10)) encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file, random_num) send_cs.sendall(json.dumps((RSA_signal, encrypted_data, random_num))) print '\033[34;1m sending Monitor Data to proxy server .... \033[0m' #判断RSA认证结果 RSA_status = send_cs.recv(1024) if RSA_status == 'RSA_OK': #RSA认证通过后,发生数据状态, send_cs.send('MonitorServicesDataChange') transfer_status = send_cs.recv(1024) if transfer_status == 'ReadyToReceiveData': #向client host端发送该主机监控数据 send_cs.send(json.dumps(data)) #break else: data_str = send_cs.recv(1024) monitor_dic = json.loads(data_str) else: print 'RSA Virification error!' except socket.error: print socket.error finally: send_cs.close()
def send_data(is2client,host,port,data): try: send_cs=socket.socket(socket.AF_INET,socket.SOCK_STREAM) send_cs.connect((host, port)) print 'start connect client/server host' RSA_signal,random_num = 'RSA_KEY_Virification', str(random_pass.randomPassword(10)) encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,random_num) print '1----' send_cs.send(json.dumps( (RSA_signal,encrypted_data, random_num) )) print '\033[34;1m sending Monitor Data to proxy server .... \033[0m' #判断RSA认证结果 RSA_status=send_cs.recv(1024) if RSA_status == 'RSA_OK': #RSA认证通过后,发生数据状态, if is2client: #向client端分发监控项数据 send_cs.send('MonitorDataChange'+'|'+str(len(data))) print 'MonitorDataChange........' else: #向server端上传资产数据 send_cs.send('MonitorResultDataCollect'+'|'+str(len(data))+'|'+'proxy') print 'MonitorResultDataCollect...............' transfer_status=send_cs.recv(1024) if transfer_status=='ReadyToReceiveData': #向client/server host端发送该主机监控数据/或资产数据 #send_cs.send(str(len(json.dumps(data)))) print data send_cs.send( data ) else: print 'RSA Virification error!' except socket.error: print socket.error finally: send_cs.close()
def push_status_data(host,port): try: #connect server let the status data into redis psh_s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) psh_s.connect((host,port)) RSA_signal,random_num = 'RSA_KEY_Virification', str(random_pass.randomPassword(10)) encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,random_num) psh_s.sendall(json.dumps( (RSA_signal,encrypted_data, random_num) )) print '\033[34;1m sending status to Monitor server .... \033[0m' #判断RSA认证结果 RSA_status=psh_s.recv(1024) if RSA_status == 'RSA_OK': psh_s.send('StatusDataIntoRedis') status=psh_s.recv(1024) if status == "StatusDataIntoRedis_OK": return pull_status_data() else: pass except socket.error: pprint(socket.error, 'err',exit=1) #sys.exit("Socket connect error") finally: psh_s.close()
def send_data(result_dic): try: client_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client_s.connect((HOST, PORT)) RSA_signal, random_num = 'RSA_KEY_Virification', str( random_pass.randomPassword(10)) encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file, random_num) client_s.sendall(json.dumps((RSA_signal, encrypted_data, random_num))) print '\033[34;1m sending status to Monitor server .... \033[0m' #判断RSA认证结果 RSA_status = client_s.recv(1024) if RSA_status == 'RSA_OK': #RSA认证通过后,发生数据状态 result_dic_json = json.dumps(result_dic) sendSignalAndSize = 'MonitorResultDataCollect' + '|' + str( len(result_dic_json)) + '|' + 'client' client_s.send(sendSignalAndSize) transferSignal = client_s.recv(1024) if transferSignal == 'ReadyToReceiveData': client_s.send(result_dic_json) else: pass except socket.error: print socket.error finally: client_s.close() print "wait for the next round..."
def get_monitor_dic(): '''第一次连接时,请求得到自己的监控项数据''' try: req_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) req_s.connect((HOST, PORT)) RSA_signal,random_num = 'RSA_KEY_Virification', str(random_pass.randomPassword(10)) encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,random_num) req_s.sendall(json.dumps( (RSA_signal,encrypted_data, random_num) )) print 'get assets monitor configure info from server .... ' #判断RSA认证结果 RSA_status=req_s.recv(1024) if RSA_status == 'RSA_OK': #RSA认证通过后,发生数据状态, print '\033[42;1m---------passed RSA verification--------\033[0m' req_s.send('MonitorDataRequest|client') #接收到的数据大小如何确定 monitor_data_size=req_s.recv(1024) try: if int(monitor_data_size) == 0: print 'no monitor_data configured for this host' #req_s.send('get_info') return 0 elif int(monitor_data_size) <=8096: monitor_data=req_s.recv(8096) else: monitor_data=revc_data_by_size(req_s,int(monitor_data_size)) except ValueError: pprint("Error:%s"% monitor_data_size, 'err') sys.exit() if len(monitor_data) == int(monitor_data_size): #data received success client_config_data = json.loads(monitor_data) if isinstance(client_config_data,list): print 'code goes here----------->' return client_config_data else: pprint("Error:%s" % client_config_data, 'err') sys.exit() else: pprint('Could not retrieve the monitor list for this host,please check with your Monitor server', 'err') sys.exit() #将监控的数据放到文件中,并对文件生成md5密钥 else: pprint('RSA authentication failed.......','err') sys.exit() except socket.error: pprint(socket.error, 'err') sys.exit() finally: req_s.close()
def monitor_api(m_dic, m_interval): status_dic = multi_job(m_dic['name'], m_interval) status_dic['hostname'] = hostname s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((HOST, PORT)) RSA_signal,random_num = 'RSA_KEY_Virification', str(random_pass.randomPassword(10)) encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,random_num) s.sendall(json.dumps( (RSA_signal,encrypted_data, random_num) )) print '\033[34;1m sending status to Monitor server .... \033[0m' s.send('ReportMonitorStatus') transferSignal = s.recv(1024) if transferSignal == 'ReadyToReceiveStatusData': s.sendall(json.dumps(status_dic)) s.close() print "wait for the next round..."
def get_monitor_dic(): '''第一次连接时,请求得到自己的监控项数据''' try: req_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) req_s.connect((HOST, PORT)) RSA_signal, random_num = 'RSA_KEY_Virification', str( random_pass.randomPassword(10)) encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file, random_num) req_s.sendall(json.dumps((RSA_signal, encrypted_data, random_num))) print 'get assets monitor configure info from server .... ' #判断RSA认证结果 RSA_status = req_s.recv(1024) if RSA_status == 'RSA_OK': #RSA认证通过后,发生数据状态, req_s.send('MonitorDataRequest' + '|' + 'client') #接收到的数据大小如何确定 monitor_data_size = req_s.recv(1024) if int(monitor_data_size) == 0: print 'no monitor_data configured for this host' #req_s.send('get_info') return 0 elif int(monitor_data_size) <= 8096: monitor_data = req_s.recv(8096) else: monitor_data = revc_data_by_size(req_s, int(monitor_data_size)) #将监控的数据放到文件中,并对文件生成md5密钥 filename = '../recv/monitor_date_frist.json' generate_file(filename, monitor_data) global monitor_file_md5 monitor_file_md5 = generate_file_md5value(filename) if len(monitor_data) == int( monitor_data_size): #data received success interval_dic = get_interval_dic(json.loads(monitor_data)) return interval_dic else: pprint( 'Could not retrieve the monitor list for this host,please check with your Monitor server', 'err') sys.exit() #将监控的数据放到文件中,并对文件生成md5密钥 else: pprint('RSA authentication failed.......', 'err') sys.exit() except socket.error: pprint(socket.error, 'err') finally: req_s.close()
def get_monitor_dic(): '''第一次连接时,请求得到自己的监控项数据''' try: req_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) req_s.connect((HOST, PORT)) RSA_signal, random_num = 'RSA_KEY_Virification', str( random_pass.randomPassword(10)) encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file, random_num) req_s.sendall(json.dumps((RSA_signal, encrypted_data, random_num))) print 'get assets monitor configure info from server .... ' #判断RSA认证结果 RSA_status = req_s.recv(1024) if RSA_status == 'RSA_OK': #RSA认证通过后,发生数据状态, req_s.send('MonitorDataRequest' + '|' + 'client') #接收到的数据大小如何确定 monitor_data_size = req_s.recv(1024) if int(monitor_data_size) == 0: print 'no monitor_data' req_s.send('get_info') return 0 #req_s.send('get_info') elif int(monitor_data_size) <= 8096: monitor_data = req_s.recv(8096) else: monitor_data = revc_data_by_size(req_s, int(monitor_data_size)) print 'get monitor data' req_s.send('get_info') monitor_dic = json.loads(monitor_data) #调用得到的监控数据方法 interval_dic = get_interval_dic(monitor_dic) #send message req_s.send('get_data') #处理监控项数据,并存储到文件中。 #{'10.168.7.35': [{'services': u'cpu', 'interval': 30L},,]} with open('d:\interval_data_temp.json', 'wb') as f: json.dump(interval_dic, f) return interval_dic else: print 'rsa error.......' except socket.error: print socket.error finally: req_s.close()
def get_monitor_dic(): '''第一次连接时,请求得到自己的监控项数据''' try: req_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) req_s.connect((HOST, PORT)) RSA_signal,random_num = 'RSA_KEY_Virification', str(random_pass.randomPassword(10)) encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,random_num) req_s.sendall(json.dumps( (RSA_signal,encrypted_data, random_num) )) print 'get assets monitor configure info from server .... ' #判断RSA认证结果 RSA_status=req_s.recv(1024) if RSA_status == 'RSA_OK': #RSA认证通过后,发生数据状态, req_s.send('MonitorDataRequest'+'|'+'client') #接收到的数据大小如何确定 monitor_data_size=req_s.recv(1024) if int(monitor_data_size) == 0: print 'no monitor_data configured for this host' #req_s.send('get_info') return 0 elif int(monitor_data_size) <=8096: monitor_data=req_s.recv(8096) else: monitor_data=revc_data_by_size(req_s,int(monitor_data_size)) #将监控的数据放到文件中,并对文件生成md5密钥 filename='../recv/monitor_date_frist.json' generate_file(filename,monitor_data) global monitor_file_md5 monitor_file_md5=generate_file_md5value(filename) if len(monitor_data) == int(monitor_data_size): #data received success interval_dic=get_interval_dic(json.loads(monitor_data)) return interval_dic else: pprint('Could not retrieve the monitor list for this host,please check with your Monitor server', 'err') sys.exit() #将监控的数据放到文件中,并对文件生成md5密钥 else: pprint('RSA authentication failed.......','err') sys.exit() except socket.error: pprint(socket.error, 'err') finally: req_s.close()
def get_monitor_dic(): '''第一次连接时,请求得到自己的监控项数据''' try: req_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) req_s.connect((HOST, PORT)) RSA_signal,random_num = 'RSA_KEY_Virification', str(random_pass.randomPassword(10)) encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,random_num) req_s.sendall(json.dumps( (RSA_signal,encrypted_data, random_num) )) print 'get assets monitor configure info from server .... ' #判断RSA认证结果 RSA_status=req_s.recv(1024) if RSA_status == 'RSA_OK': #RSA认证通过后,发生数据状态, req_s.send('MonitorDataRequest'+'|'+'client') #接收到的数据大小如何确定 monitor_data_size=req_s.recv(1024) if int(monitor_data_size) == 0: print 'no monitor_data' req_s.send('get_info') return 0 #req_s.send('get_info') elif int(monitor_data_size) <=8096: monitor_data=req_s.recv(8096) else: monitor_data=revc_data_by_size(req_s,int(monitor_data_size)) print 'get monitor data' req_s.send('get_info') monitor_dic=json.loads(monitor_data) #调用得到的监控数据方法 interval_dic=get_interval_dic(monitor_dic) #send message req_s.send('get_data') #处理监控项数据,并存储到文件中。 #{'10.168.7.35': [{'services': u'cpu', 'interval': 30L},,]} with open('d:\interval_data_temp.json', 'wb') as f: json.dump(interval_dic, f) return interval_dic else: print 'rsa error.......' except socket.error: print socket.error finally: req_s.close()
def server_connector(status_dic, HOST,PORT ): try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((HOST, PORT)) except socket.error: sys.exit( "TriAquae Master server couldn't be connected!") RSA_signal,random_num = 'RSA_KEY_Virification', str(random_pass.randomPassword(10)) encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,random_num) s.sendall(json.dumps( (RSA_signal,encrypted_data, random_num) )) print '\033[34;1m getting data from triaquae server .... \033[0m' s.send('SyncConfigDataToTrunkServer') transferSignal = s.recv(1024) if transferSignal == 'ReadyToReceiveStatusData': s.sendall(json.dumps(status_dic)) s.close() print "wait for the next round..."
def get_monitor_dic(host, port): '''第一次连接时,请求得到所有以该代理为服务端的主机监控信息''' try: req_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) req_s.connect((host, port)) RSA_signal, random_num = 'RSA_KEY_Virification', str( random_pass.randomPassword(10)) encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file, random_num) req_s.sendall(json.dumps((RSA_signal, encrypted_data, random_num))) print 'get assets monitor configure info from server .... ' #判断RSA认证结果 RSA_status = req_s.recv(1024) if RSA_status == 'RSA_OK': #RSA认证通过后,进行监控数据请求 req_s.send('MonitorDataRequest' + '|' + 'proxy') #如果服务端查不到数据时,会发生异常。 monitor_data_size = req_s.recv(1024) global proxy_monitor_dic if int(monitor_data_size) == 0: #该代理客户端没有被监控 print 'proxy client has no monitor data...' req_s.send('get_info') return 0 elif int(monitor_data_size) <= 4096: monitor_data = req_s.recv(4096) else: monitor_data = receive_data_by_size(req_s, int(monitor_data_size)) req_s.send('get_info') proxy_monitor_dic = json.loads(monitor_data) print proxy_monitor_dic #send message print 'get monitor info.... ' return proxy_monitor_dic else: print 'rsa error.......' except socket.error: print socket.error finally: req_s.close()
def server_connector(status_dic, HOST, PORT): try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((HOST, PORT)) except socket.error: sys.exit("TriAquae Master server couldn't be connected!") RSA_signal, random_num = 'RSA_KEY_Virification', str( random_pass.randomPassword(10)) encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file, random_num) s.sendall(json.dumps((RSA_signal, encrypted_data, random_num))) print '\033[34;1m getting data from triaquae server .... \033[0m' s.send('SyncConfigDataToTrunkServer') transferSignal = s.recv(1024) if transferSignal == 'ReadyToReceiveStatusData': s.sendall(json.dumps(status_dic)) s.close() print "wait for the next round..."
def get_monitor_dic(host,port): '''第一次连接时,请求得到所有以该代理为服务端的主机监控信息''' try: req_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) req_s.connect((host, port)) RSA_signal,random_num = 'RSA_KEY_Virification', str(random_pass.randomPassword(10)) encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,random_num) req_s.sendall(json.dumps( (RSA_signal,encrypted_data, random_num) )) print 'get assets monitor configure info from server .... ' #判断RSA认证结果 RSA_status=req_s.recv(1024) if RSA_status == 'RSA_OK': #RSA认证通过后,进行监控数据请求 req_s.send('MonitorDataRequest'+'|'+'proxy') #如果服务端查不到数据时,会发生异常。 monitor_data_size=req_s.recv(1024) global proxy_monitor_dic if int(monitor_data_size) == 0: #该代理客户端没有被监控 print 'proxy client has no monitor data...' req_s.send('get_info') return 0 elif int(monitor_data_size) <= 8096: monitor_data = req_s.recv(8096) else: monitor_data =receive_data_by_size(req_s,int(monitor_data_size)) req_s.send('get_info') proxy_monitor_dic=json.loads(monitor_data) print proxy_monitor_dic #send message print 'get monitor info.... ' return proxy_monitor_dic else: print 'rsa error.......' except socket.error: print socket.error finally: req_s.close()