• 威胁分析平台恶意软件规则的总结


    威胁分析平台恶意软件规则的总结

    威胁分析平台恶意软件规则分析辅助脚本

    1、有域名请求并且有TCP通信流量

      1 #!/usr/bin/python3
      2 #-*- coding:utf-8 -*-
      3 
      4 #编写环境  windows 7 x64 + Notepad++ + Python3.7.0
      5 
      6 '''
      7 1、发现告警  
      8 2、存在TCP通信流量 sip:"10.10.10.10" AND dip:"100.100.100.100"(一周内存在流量,当天存在流量)
      9 3、存在DNS-A记录  dip:"10.10.10.10" AND host:"恶意域名" AND addr:*
     10 4、确定域名是恶意的
     11 '''
     12 
     13 
     14 import urllib3
     15 urllib3.disable_warnings()
     16 import sys
     17 import time
     18 import datetime
     19 
     20 import requests
     21 import xlrd
     22 import json
     23 
     24 
     25 
     26 #威胁分析平台地址
     27 host="https://10.10.10.10"
     28 
     29 headers ={
     30     'Accept': 'application/json, text/plain, */*',
     31     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',
     32     'Accept-Encoding': 'gzip, deflate',
     33     'Accept-Language': 'zh-CN,zh;q=0.9',
     34     'Cookie': 'session=1111111111111173ff9417aaed5f8e063a5218e',
     35 }
     36 
     37 '''                                          stime         etime
     38 2020-05-02 00:00:00-2020-05-02 14:27:13     1588348800000   1588400833356
     39 2020-05-01 00:00:00-2020-05-01 23:59:59     1588262400000   1588348799999
     40 2020-04-30 00:00:00-2020-04-30 23:59:59     1588176000000   1588262399999
     41 2020-04-29 00:00:00-2020-04-29 23:59:59     1588089600000   1588175999999
     42 2020-04-28 00:00:00-2020-04-28 23:59:59     1588003200000   1588089599999
     43 2020-04-27 00:00:00-2020-04-27 23:59:59     1587916800000   1588003199999
     44 2020-04-26 00:00:00-2020-04-26 23:59:59     1587830400000   1587916799999
     45 '''
     46 
     47 def tcp(tcp_detail):
     48     
     49     #查询受害IP与C&C服务器通信次数
     50     alarm_sip,alarm_dip,ioc = tcp_detail
     51     
     52     try:
     53         total_week = 0
     54         etime = int(round(time.time()*1000))
     55         for i in range(7):
     56            
     57             ymd = time.strftime('%Y-%m-%d',time.localtime(etime/1000))#%Y-%m-%d %H:%M:%S
     58             stime = int(time.mktime(time.strptime(str(ymd),"%Y-%m-%d")))*1000
     59                         
     60             url = host +'/xxx/zzz/getsearch?branch_id=223232&stime={stime}&etime={etime}&keyword=sip:%22{alarm_sip}%22+AND+dip:%22{alarm_dip}%22&index=xxx-tcpflow&category=xxx&interval=3h&page=1&size=20&asset_group_ids=&mode=advance_model&key_fields=@timestamp&graph_conf=%7B%7D'.format(stime=stime,etime=etime,alarm_sip=alarm_sip,alarm_dip=alarm_dip)
     61 
     62             req = requests.get(url, headers=headers, verify=False).json()
     63             #print(req)
     64             total_week += req['data']['search']['total']
     65             if i==1:
     66                 total_oneday = total_week
     67             etime = stime-1
     68             
     69         if total_week > 30 and total_oneday > 0:
     70              return [alarm_sip, alarm_dip,ioc,total_week]
     71         return [alarm_sip, alarm_dip,ioc,False]
     72     except Exception as e:
     73         print("tcp wrong")
     74         print(e)
     75         sys.exit()  
     76 
     77 
     78 
     79 #查询dns-A记录    
     80 def dns_a(threat_detail):
     81     # 获取ioc对应的dns a记录,如果不存在解析记录返回列表包含false,存在解析记录获取全部返回页全部解析ip,去重后返回list
     82     #etime结束时间  stime开始时间
     83     dns_a_list = []
     84     alarm_dip, alarm_sip, ioc, count= threat_detail
     85     etime = int(round(time.time() * 1000))
     86     #stime = etime - (4 * 60 * 60 * 1000) # 搜索前4小时的dns解析记录
     87     stime = etime - (24 * 60 * 60 * 1000) # 搜索今天的dns解析记录
     88     
     89     url = host + '/xxx/xxxx/xxxsearch?stime={stime}&etime={etime}&keyword=dip:%22{alarm_dip}%22+AND+host:%22{ioc}%22+AND+addr:*&index=xxx-dns&category=xxx&interval=3h&page=1&size=20&asset_group_ids=&mode=advance_model&key_fields=@timestamp'.format(stime=stime,etime=etime,alarm_dip=alarm_dip,ioc=ioc)
     90     #print(url)
     91  
     92     try:
     93         req = requests.get(url, headers=headers, verify=False).json()
     94         
     95         if req['data']['search']['total'] <= 0:
     96             print('can not find dns a record',end = '
    ',flush = True)
     97             return [alarm_dip, ioc , False]
     98         
     99         for d in req['data']['search']['hits']:
    100             for k,v in d.items():
    101                 if k=='_source':
    102                     for x,y in d[k].items():
    103                         if x=='addr':
    104                             #print(d[k][x])
    105                             dns_a_list.append(d[k][x])
    106                             #sorted(dns_a_list)
    107         print('find dns a record', end='
    ',flush= True)
    108         #去重
    109         b=[]
    110         for item in dns_a_list:
    111             if item not in b:
    112                 b.append(item)
    113         b=b[0]
    114         return [alarm_dip, ioc ,b]
    115     
    116     
    117     except Exception as e:
    118         print("dns_a wrong")
    119         print(e)
    120         sys.exit()
    121         
    122     
    123 #取xlsx第5列(受害IP)和第7列(攻击IP)存放到列表中(去重)
    124 def get_xlsx_alarm_list():
    125     
    126     try:
    127         alarm_list = []
    128         print(sys.argv[1])
    129         
    130         #打开Excel文件读取数据
    131         data = xlrd.open_workbook(sys.argv[1])
    132         
    133         #获取一个工作表
    134         table = data.sheets()[0]    #通过索引顺序获取
    135         
    136         #获取行数和列数
    137         #nrows = table.nrows
    138         #nclos = table.ncols
    139         
    140         #遍历每一行
    141         for i in range(1,table.nrows):
    142             alarm_list.append((table.row_values(i)[4],table.row_values(i)[6],table.row_values(i)[9]))
    143         return list(set(alarm_list))
    144     except Exception as e:
    145         print(e)
    146         print('xlsx wrong')
    147         sys.exit()  
    148 
    149 
    150 def login():
    151     #https://10.10.10.10/xxx/ssxx/view
    152     url =host + '/xxx/ssxx/view'; #找到返回结果是"未登陆或登陆超时!"的地址(JSON数据)
    153     
    154     #获取威胁分析平台的版本信息
    155     #https://10.10.10.10/xxxx/xxx/channel_version
    156     #xxx_version = requests.get(host + '/xxx/admin/channel_version',headers=headers,verify=False).json()['data']['license_info']['version']
    157     #print(xxx_version)
    158         
    159     try:
    160         #用requests来抓取网页里面的json数据
    161         req1 =requests.get(url=url,headers=headers,verify=False).json()
    162         if req1.get('status') == 200:
    163             print('login success')
    164             return True
    165         else:
    166             print(req1.get('message'))
    167             return False         
    168     except Exception as e:
    169         print(e)
    170         
    171 def tcp_write():
    172 
    173     alarm_list=get_xlsx_alarm_list()
    174     #print(alarm_list)#[sip,dip]
    175     
    176     for alarm in alarm_list:
    177         tcprecord = tcp(alarm)
    178         print(tcprecord)#['192.168.10.10', '181.61.119.171','ext.88.com', 12] 
    179         
    180         if tcprecord[3]:       
    181             dnsrecord = dns_a(tcprecord)
    182             print(dnsrecord)#['192.168.10.10', 'ext.88.com', ['123.11.6.111', '113.11.16.103']]
    183             if dnsrecord[2]:
    184                 print(dnsrecord)
    185                 dnsfile = open('tcp_dns_a_DNS.txt','a')
    186                 dnsfile.write(str(dnsrecord)+"
    ")
    187                 
    188                 tcpfile = open('tcp_dns_a_TCP.txt','a')
    189                 tcpfile.write(str(tcprecord)+"
    ")
    190 
    191 def main(): 
    192     print("eg:python3 tcp.py 告警_列表导出2020-01-29 00_00_00至2020-02-04 20_07_59.xlsx")
    193     starttime = time.time()
    194     if(login()):
    195         tcp_write()  
    196     endtime = time.time()
    197     print('一共运行了{0}秒'.format((endtime-starttime)))     
    198 
    199 if __name__ == '__main__':
    200     main()

    2、只有TCP通信流量

      1 #!/usr/bin/python3
      2 #-*- coding:utf-8 -*-
      3 
      4 #编写环境  windows 7 x64 + Notepad++ + Python3.7.0
      5 
      6 '''
      7 1、存在TCP通信流量 sip:"10.10.10.10" AND dip:"攻击IP"(有流量)
      8 '''
      9 
     10 
     11 import urllib3
     12 urllib3.disable_warnings()
     13 import sys
     14 import time
     15 import datetime
     16 
     17 import requests
     18 import xlrd
     19 import json
     20 
     21 
     22 
     23 #威胁分析平台地址
     24 host="https://10.10.10.10"
     25 
     26 headers ={
     27     'Accept': 'application/json, text/plain, */*',
     28     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',
     29     'Accept-Encoding': 'gzip, deflate',
     30     'Accept-Language': 'zh-CN,zh;q=0.9',
     31     'Cookie': 'session=1111111111156654f8005689b64e5afa244073ff1111111111111111',
     32 }
     33 
     34 '''                                          stime         etime
     35 2020-05-02 00:00:00-2020-05-02 14:27:13     1588348800000   1588400833356
     36 2020-05-01 00:00:00-2020-05-01 23:59:59     1588262400000   1588348799999
     37 2020-04-30 00:00:00-2020-04-30 23:59:59     1588176000000   1588262399999
     38 2020-04-29 00:00:00-2020-04-29 23:59:59     1588089600000   1588175999999
     39 2020-04-28 00:00:00-2020-04-28 23:59:59     1588003200000   1588089599999
     40 2020-04-27 00:00:00-2020-04-27 23:59:59     1587916800000   1588003199999
     41 2020-04-26 00:00:00-2020-04-26 23:59:59     1587830400000   1587916799999
     42 '''
     43 def tcp(tcp_detail):
     44     
     45     #查询受害IP与C&C服务器通信次数
     46     alarm_sip,alarm_dip = tcp_detail
     47     
     48     try:
     49         total_week=0
     50         etime = int(round(time.time()*1000))
     51         for i in range(7):
     52            
     53             ymd = time.strftime('%Y-%m-%d',time.localtime(etime/1000))#%Y-%m-%d %H:%M:%S
     54             stime = int(time.mktime(time.strptime(str(ymd),"%Y-%m-%d")))*1000
     55                         
     56             url = host +'/xxx/zzz/getsearch?branch_id=232&stime={stime}&etime={etime}&keyword=sip:%22{alarm_sip}%22+AND+dip:%22{alarm_dip}%22&index=xxx-tcpflow&category=xxx&interval=3h&page=1&size=20&asset_group_ids=&mode=advance_model&key_fields=@timestamp&graph_conf=%7B%7D'.format(stime=stime,etime=etime,alarm_sip=alarm_sip,alarm_dip=alarm_dip)
     57 
     58             req = requests.get(url, headers=headers, verify=False).json()
     59             #print(req)
     60             total_week += req['data']['search']['total']
     61             if i==1:
     62                 total_oneday=total_week
     63             etime=stime-1
     64             
     65         if total_week > 30 and total_oneday > 0:
     66              return [alarm_sip, alarm_dip,total_week]
     67         return [alarm_sip, alarm_dip,False]
     68     except Exception as e:
     69         print("tcp wrong")
     70         print(e)
     71         sys.exit()  
     72      
     73     
     74 #取xlsx第5列(受害IP)和第7列(攻击IP)存放到列表中(去重)
     75 def get_xlsx_alarm_list():
     76     
     77     try:
     78         alarm_list = []
     79         print(sys.argv[1])
     80         
     81         #打开Excel文件读取数据
     82         data = xlrd.open_workbook(sys.argv[1])
     83         
     84         #获取一个工作表
     85         table = data.sheets()[0]    #通过索引顺序获取
     86         
     87         #获取行数和列数
     88         #nrows = table.nrows
     89         #nclos = table.ncols
     90         
     91         #遍历每一行
     92         for i in range(1,table.nrows):
     93             alarm_list.append((table.row_values(i)[4],table.row_values(i)[6]))
     94         
     95         return list(set(alarm_list))
     96     except Exception as e:
     97         print(e)
     98         print('xlsx wrong')
     99         sys.exit()  
    100 
    101 
    102 def login():
    103     #https://10.10.10.10/xxx/zzz/view
    104     url =host + '/xxx/zzz/view'; #找到返回结果是"未登陆或登陆超时!"的地址(JSON数据)
    105     
    106     #获取威胁分析平台的版本信息
    107     #https://10.10.10.10/xxx/zzz/channel_version
    108     #xxx_version = requests.get(host + '/xxx/zzz/channel_version',headers=headers,verify=False).json()['data']['license_info']['version']
    109     #print(xxx_version)
    110         
    111     try:
    112         #用requests来抓取网页里面的json数据
    113         req1 =requests.get(url=url,headers=headers,verify=False).json()
    114         if req1.get('status') == 200:
    115             print('login success')
    116             return True
    117         else:
    118             print(req1.get('message'))
    119             return False         
    120     except Exception as e:
    121         print(e)
    122         
    123 def tcp_write():
    124 
    125     alarm_list=get_xlsx_alarm_list()
    126     #print(alarm_list)#[sip,dip]
    127     for alarm in alarm_list:
    128         tcprecord = tcp(alarm)
    129         print(tcprecord)  #['192.168.216.39', '183.60.159.171', 12]        
    130         if tcprecord[2]:        
    131             file = open('tcp.txt','a')
    132             file.write(str(tcprecord)+"
    ")
    133 
    134 def main(): 
    135     print("eg:python3 tcp.py 告警_列表导出2020-01-29 00_00_00至2020-02-04 20_07_59.xlsx")
    136     starttime = time.time()
    137     if(login()):
    138         tcp_write()  
    139     endtime = time.time()
    140     print('一共运行了{0}秒'.format((endtime-starttime)))     
    141 
    142 if __name__ == '__main__':
    143     main()

    3、只有TCP通信流量(多线程版)

      1 #!/usr/bin/python3
      2 #-*- coding:utf-8 -*-
      3 
      4 #编写环境  windows 7 x64 + Notepad++ + Python3.7.0
      5 
      6 '''
      7 1、存在TCP通信流量 sip:"10.10.10.10" AND dip:""(有流量)
      8 
      9 (1)死锁(2)很多线程未被处理,占用资源
     10 https://www.cnblogs.com/zengjfgit/p/6259429.html?utm_source=itdadao&utm_medium=referral
     11 https://blog.csdn.net/qq_40279964/article/details/82902159
     12 http://ixuling.com/?p=187
     13 '''
     14 
     15 
     16 import urllib3
     17 urllib3.disable_warnings()
     18 import sys
     19 import time
     20 import datetime
     21 
     22 import requests
     23 import xlrd
     24 import json
     25 import threading
     26 import urllib
     27 
     28 
     29 #威胁分析平台地址
     30 host="https://10.10.10.10"
     31 
     32 headers ={
     33     'Accept': 'application/json, text/plain, */*',
     34     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',
     35     'Accept-Encoding': 'gzip, deflate',
     36     'Accept-Language': 'zh-CN,zh;q=0.9',
     37     'Cookie': 'session=111114349434b881f11111111',
     38 }
     39 
     40 Lock=threading.Lock()
     41 
     42 
     43 def tcp(tcp_detail):
     44     
     45     
     46     #查询受害IP与C&C服务器通信次数
     47     alarm_sip,alarm_dip = tcp_detail
     48     etime = int(round(time.time()*1000))
     49     #stime = etime - (7*24 * 60 * 60 * 1000) # 搜索前7天的TCP流量
     50     stime = etime - (24 * 60 * 60 * 1000) # 搜索今天的TCP流量
     51     
     52     url = host +'/xxxx/zzzz/getsearch?branch_id=3232323&stime={stime}&etime={etime}&keyword=sip:%22{alarm_sip}%22+AND+dip:%22{alarm_dip}%22&index=xxxx-tcpflow&category=xxxxx&interval=3h&page=1&size=20&asset_group_ids=&mode=advance_model&key_fields=@timestamp&graph_conf=%7B%7D'.format(stime=stime,etime=etime,alarm_sip=alarm_sip,alarm_dip=alarm_dip)
     53     
     54     
     55     try:
     56         
     57         req = requests.get(url, headers=headers, verify=False).json()
     58         #print(req)
     59         
     60         if req['data']['search']['total'] > 30:
     61              return [alarm_sip, alarm_dip,req['data']['search']['total']]
     62         return [alarm_sip, alarm_dip,False]
     63     except Exception as e:
     64         print("tcp wrong")
     65         print(e)
     66         sys.exit()     
     67         
     68     
     69 #取xlsx第5列(受害IP)和第7列(攻击IP)存放到列表中(去重)
     70 def get_xlsx_alarm_list():
     71     
     72     try:
     73         alarm_list = []
     74         print(sys.argv[1])
     75         
     76         #打开Excel文件读取数据
     77         data = xlrd.open_workbook(sys.argv[1])
     78         
     79         #获取一个工作表
     80         table = data.sheets()[0]    #通过索引顺序获取
     81         
     82         #获取行数和列数
     83         #nrows = table.nrows
     84         #nclos = table.ncols
     85         
     86         #遍历每一行
     87         for i in range(1,table.nrows):
     88             alarm_list.append((table.row_values(i)[4],table.row_values(i)[6]))
     89         
     90         return list(set(alarm_list))
     91     except Exception as e:
     92         print(e)
     93         print('xlsx wrong')
     94         sys.exit()  
     95 
     96 def login():
     97     #https://10.10.10.10/xxx/zzz/view
     98     url =host + '/xxx/zzzz/view'; #找到返回结果是"未登陆或登陆超时!"的地址(JSON数据)
     99     
    100     #获取威胁分析平台的版本信息
    101     #https://10.10.10.10/xxx/zzz/channel_version
    102     #xxx_version = requests.get(host + '/xxx/zzz/channel_version',headers=headers,verify=False).json()['data']['license_info']['version']
    103     #print(xxx_version)
    104         
    105     try:
    106         #用requests来抓取网页里面的json数据
    107         req1 =requests.get(url=url,headers=headers,verify=False).json()
    108         if req1.get('status') == 200:
    109             print('login success')
    110             return True
    111         else:
    112             print(req1.get('message'))
    113             return False
    114     except Exception as e:
    115         print(e)
    116 
    117 def tcp_record(alarm):
    118     Lock.acquire()
    119     try:
    120         tcprecord = tcp(alarm)     
    121         print(tcprecord)  #['192.168.2.3', '283.10.159.111', 12]
    122             
    123         if tcprecord[2]:        
    124             file = open('thread_tcp.txt','a')
    125             file.write(str(tcprecord)+"
    ")
    126     finally:
    127         Lock.release()
    128         
    129 def tcp_write():
    130     opener = urllib.request.build_opener()
    131     # 设置最大线程数
    132     thread_max = threading.BoundedSemaphore(300)#这个值适当的调整,注意这里不是越大越好,适合的才是最好的。
    133     
    134     alarm_list=get_xlsx_alarm_list()
    135     #print(alarm_list)#[sip,dip]
    136     
    137     threads = []
    138     for alarm in alarm_list:   
    139         # 如果线程达到最大值则等待前面线程跑完空出线程位置
    140         thread_max.acquire()
    141         t = threading.Thread(target=tcp_record,args=(alarm,))
    142         t.start()
    143         threads.append(t)
    144         
    145     for t in threads:
    146         t.join()
    147     # 任务跑完移除线程
    148     thread_max.release()
    149 
    150 def main():
    151     print("eg:python3 thread_tcp.py 告警_列表导出2020-01-29 00_00_00至2020-02-04 20_07_59.xlsx")
    152     starttime = time.time()
    153     if(login()):
    154         tcp_write()
    155     endtime = time.time()
    156     print('一共运行了{0}秒'.format((endtime-starttime))) 
    157              
    158 if __name__ == '__main__':
    159     main()

    4、有域名请求

      1 #!/usr/bin/python3
      2 #-*- coding:utf-8 -*-
      3 
      4 #编写环境  windows 7 x64  Notepad++ + Python3.5.0
      5 
      6 '''
      7 1、发现告警  
      8 2、存在DNS-A记录  dip:"10.10.10.10" AND host:"恶意域名" AND addr:*
      9 3、确定恶意域名
     10 '''
     11 
     12 
     13 import urllib3
     14 urllib3.disable_warnings()
     15 import sys
     16 import time
     17 import datetime
     18 
     19 import requests
     20 import xlrd
     21 
     22 
     23 
     24 #威胁分析平台地址
     25 host="https://10.10.10.10"
     26 
     27 headers ={
     28     'Accept': 'application/json, text/plain, */*',
     29     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',
     30     'Accept-Encoding': 'gzip, deflate',
     31     'Accept-Language': 'zh-CN,zh;q=0.9',
     32     'Cookie': 'session=3546a6ffe89d43e9966cea7c1797bf2ecfd29f22762a0a72970899a69635a24a61479ccd8290bc30',
     33 }
     34 
     35     
     36 #查询dns-A记录    
     37 def dns_a(threat_detail):
     38     # 获取ioc对应的dns a记录,如果不存在解析记录返回列表包含false,存在解析记录获取全部返回页全部解析ip,去重后返回list
     39     #etime结束时间  stime开始时间
     40     dns_a_list = []
     41     alarm_dip, ioc = threat_detail
     42     etime = int(round(time.time() * 1000))
     43     #stime = etime - (4 * 60 * 60 * 1000) # 搜索前4小时的dns解析记录
     44     stime = etime - (24 * 60 * 60 * 1000) # 搜索今天的dns解析记录
     45     
     46     url = host + '/xxx/zzz/getsearch?stime={stime}&etime={etime}&keyword=dip:%22{alarm_dip}%22+AND+host:%22{ioc}%22+AND+addr:*&index=xxx-dns&category=xxx&interval=3h&page=1&size=20&asset_group_ids=&mode=advance_model&key_fields=@timestamp'.format(stime=stime,etime=etime,alarm_dip=alarm_dip,ioc=ioc)
     47     #print(url)
     48  
     49         
     50         
     51     try:
     52         req = requests.get(url, headers=headers, verify=False).json()
     53         
     54         if req['data']['search']['total'] <= 0:
     55             print('can not find dns a record',end = '
    ',flush = True)
     56             return [alarm_dip, ioc , False]
     57         
     58         for d in req['data']['search']['hits']:
     59             for k,v in d.items():
     60                 if k=='_source':
     61                     for x,y in d[k].items():
     62                         if x=='addr':
     63                             #print(d[k][x])
     64                             dns_a_list.append(d[k][x])
     65                             #sorted(dns_a_list)
     66         print('find dns a record', end='
    ',flush= True)
     67         #去重
     68         b=[]
     69         for item in dns_a_list:
     70             if item not in b:
     71                 b.append(item)
     72         b=b[0]
     73         return [alarm_dip, ioc ,b]
     74     
     75     
     76     except Exception as e:
     77         print("dns_a wrong")
     78         print(e)
     79         sys.exit()
     80         
     81     
     82 #取xlsx第5列(受害IP)和第9列(域名/IOC)存放到列表中(去重)
     83 def get_xlsx_alarm_list():
     84     
     85     try:
     86         alarm_list = []
     87         print(sys.argv[1])
     88         
     89         #打开Excel文件读取数据
     90         data = xlrd.open_workbook(sys.argv[1])
     91         
     92         #获取一个工作表
     93         table = data.sheets()[0]    #通过索引顺序获取
     94         
     95         #获取行数和列数
     96         #nrows = table.nrows
     97         #nclos = table.ncols
     98         
     99         #遍历每一行
    100         for i in range(1,table.nrows):
    101             alarm_list.append((table.row_values(i)[4],table.row_values(i)[9]))
    102         
    103         return list(set(alarm_list))
    104     except Exception as e:
    105         print(e)
    106         print('xlsx wrong')
    107         sys.exit()  
    108 
    109 
    110 def login():
    111     #https://10.10.10.10/xxx/dashboard/view
    112     url =host + '/xxx/dashboard/view'; #找到返回结果是"未登陆或登陆超时!"的地址(JSON数据)
    113     
    114     #获取威胁分析平台的版本信息
    115     #https://10.10.10.10/xxx/zzz/channel_version
    116     #xxx_version = requests.get(host + '/xxx/zzz/channel_version',headers=headers,verify=False).json()['data']['license_info']['version']
    117     #print(xxx_version)
    118         
    119     try:
    120         #用requests来抓取网页里面的json数据
    121         req1 =requests.get(url=url,headers=headers,verify=False).json()
    122         if req1.get('status') == 200:
    123             print('login success')
    124             return True
    125         else:
    126             print(req1.get('message'))
    127             return False        
    128     except Exception as e:
    129         print(e)    
    130     
    131 def dns_write():
    132     alarm_list=get_xlsx_alarm_list()
    133     #print(alarm_list)#[dip,host]
    134     
    135     for alarm in alarm_list:
    136         dnsrecord = dns_a(alarm)
    137         print(dnsrecord)   
    138         if dnsrecord[2]:        
    139             file = open('dns_a.txt','a')
    140             file.write(str(dnsrecord)+"
    ")
    141     
    142 def main():
    143     print("eg:python3 dns_a.py 告警_列表导出2020-01-29 00_00_00至2020-02-04 20_07_59.xlsx")
    144     starttime = time.time()   
    145     if(login()):
    146         dns_write()
    147     endtime = time.time()
    148     print('一共运行了{0}秒'.format((endtime-starttime)))  
    149     
    150 if __name__ == '__main__':
    151     main()
    152     
  • 相关阅读:
    图论
    数学
    P2222 外婆婆~
    P2083 找人
    P1215 [USACO1.4]母亲的牛奶 Mother's Milk
    New Rap
    P2298 Mzc和男家丁的游戏
    P2040 打开所有的灯
    P1135 奇怪的电梯
    UVA10474 Where is the Marble?
  • 原文地址:https://www.cnblogs.com/wmiot/p/13032985.html
Copyright © 2020-2023  润新知