# coding:utf-8

import sys
import uuid
import json
import time
import random

# path = str(sys.path[0])
# home_path = path.split("isop_uebaapiData")[0]
# sys.path.append(home_path)
from util import send_logs

def alarm(cookies, api):
    """2、HTTP日志"""
    inputstr = '''[{"msgtype":1,"hash":"8DE9-BDAB-F622-2FA8","dev_ip":"10.67.5.17","product":"uts"},{"sid":"6004744450036c44f815500016d00a5f5151105430a3ed","timestamp":1567673939,"sip":"10.67.0.52","sport":5624,"dip":"10.67.0.53","dport":80,"protocol":6,"app":3087428650795009,"app_proto":8,"direct":4,"app.detail":{"method":"GET","http_protocol":"1.1","ret_code":200,"host":"10.67.1.1","uri":"/webtest/uploadFile.php","referer":"http://[2222::65]/webtest/","content_type":" multipart/form-data; boundary=----WebKitFormBoundary2zcCUl4lQf1h7A7S","content_type_server":" text/html","server":"Apache/2.4.4 (Win32) OpenSSL/0.9.8y PHP/5.4.19","user_agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36","link":"","cookies":"loginmainacctid=wangshiguang;operatorId=d2601586;com.huawei.boss.CURRENT_MENUID=BLAR_ChargeCrm3_WEB;","content_encoding":"","location":"","content_length":70080,"content_length_server":200,"set_cookie":"","range":"","connection":"keep-alive","connection_server":"Keep-Alive","x_forwarded_for":"","post_data":"LS0tLS0tV2ViS2l0Rm9ybUJvdW5kYXJ5MnpjQ1VsNGxRZjFoN0E3Uw0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJmaWxlIjsgZmlsZW5hbWU9IjAwMDFhZDQ0MWRjYjM4NjIxOGE3Njk5MmFjZjhiNzA1Ig0=","response_body":"VXBsb2FkOiAwMDAxYWQ0NDFkY2IzODYyMThhNzY5OTJhY2Y4YjcwNTxiciAvPlR5cGU6IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTxiciAvPlNpemU6IDY4LjEyNzkyOTY4NzUgS2I8YnIgLz5UZW1wIGZpbGU6IEQ6XHhhbXBwXHRtcFxwaHA2ODI1LnRtcDxiciAvPjAwMDFhZDQ0MWRjYjM4NjIxOGE3Njk5MmFjZjhiNzA1IGFscmVhZHkgZXhpc3RzLiA="}}]'''
    inputarr = json.loads(inputstr, strict=False)
    # 随机生成timestamp
    inputarr[1]["timestamp"] = int(time.time())
    inputarr[1]["sid"] = str(uuid.uuid1())
    # inputarr[1]["sip"] = "10.67.4.33"
    inputarr[1]["sip"] = generate_random_ip()
    inputarr[1]["dip"] = "10.67.1.1"
    inputarr[1]["dport"] = "8180"
    inputarr[1]["app.detail"]["uri"] = "/alarmtest.action?BMECID=352432757&BMETimestamp=1692788489260&queryNumber=158713459"
    inputarr[1]["app.detail"]["host"] = api
    inputarr[1]["app.detail"]["cookies"] = cookies
    return json.dumps(inputarr)

def generate_random_ip():
    # 固定前缀 "192.168."
    prefix = "192.168."
    # 生成随机的第三和第四段IP地址
    third_octet = 1
    fourth_octet = random.randint(0, 50)
    # 拼接IP地址
    ip = "{}{}.{}".format(prefix, third_octet, fourth_octet)
    return ip

def AbIDVisitAPINums510404():
    datalist = {"TCP_5011": list()}
    ID2Area = {
        "武汉": ["1101820", "1101821", "1101822", "1101823", "1101825"],
        "荆州": ["2001800", "2001801", "2001808"],
        "江汉": ["1801820", "1801810"],
        "省公司市场部": ["1002011", "1002012", "1002013"]
    }
    api_list = ["test.alarm.com/webtest", "alarm.com/testalarm", "business.system..alarmcom", "hhh.alarm.com",
                "good.alarm.com"]
    info_list = [
        ["u-locale=zh_CN;loginmainacctid=zhang3;operatorId=" + ID2Area["武汉"][
            0] + ";com.huawei.boss.CURRENT_MENUID=BLAR_ChargeCrm3_WEB;", 60],
        ["u-locale=zh_CN;loginmainacctid=zhang3;operatorId=" + ID2Area["荆州"][
            2] + ";com.huawei.boss.CURRENT_MENUID=BLAR_ChargeCrm3_WEB;", 120]
    ]
    for i in range(len(info_list)):
        cookies = info_list[i][0]
        count = info_list[i][1]
        for j in range(count):
            api = random.choice(api_list)
            datalist["TCP_5011"].append(alarm(cookies, api))
    for key in datalist.keys():
        send_logs(datalist[key])
    return "510405场景的告警数据已生成"

def get_random_jobnum():
    # 定义包含不同前缀的字符串数组
    prefix_strings = [
        ['10243', '10895', '10134', '10781', '10962'],  # 10打头的字符串示例
        ['11089', '11057', '11023', '11016', '11030'],  # 110打头的字符串示例
        ['14076', '14049', '14098', '14032', '14061'],  # 140打头的字符串示例
        ['26054', '26013', '26087', '26029', '26061'],  # 260打头的字符串示例
        ['20083', '20015', '20072', '20096', '20048'],  # 200打头的字符串示例
        ['19035', '19017', '19049', '19082', '19096'],  # 190打头的字符串示例
        ['180237', '180276', '180204', '180295', '180219']  # 1802打头的字符串示例
    ]

    # 随机选择一个前缀数组
    selected_prefix_array = random.choice(prefix_strings)
    # 随机选择一个具体的字符串
    selected_string = random.choice(selected_prefix_array)
    return selected_string

def get_random_person():
    people_list = [
        "Alice", "Bob", "Charlie", "David", "Emma", "Frank", "Grace", "Henry", "Isabel", "Jack",
        "Kate", "Liam", "Mia", "Noah", "Olivia"
        # 继续添加更多的名称...
    ]
    
    random_person = random.choice(people_list)
    return random_person

def get_random_menu():
    # 定义系统菜单列表
    system_menu = [
        "主页", "设置", "个人资料", "消息", "通知", "帮助", "帐户", "关于", "联系我们", "服务", 
        "购物车", "订单", "支付", "地址", "密码"
    ]

    # 随机选择一个菜单项
    random_menu_item = random.choice(system_menu)
    return random_menu_item

if __name__ == '__main__':
    datalist = {"TCP_5011": list()}
    ID2Area = {
        "武汉": ["1101820", "1101821", "1101822", "1101823", "1101825"],
        "荆州": ["2001800", "2001801", "2001808"],
        "江汉": ["1801820", "1801810"],
        "省公司市场部": ["1002011", "1002012", "1002013"]
    }
    api_list = ["test.alarm.com/webtest", "alarm.com/testalarm", "business.system..alarmcom", "hhh.alarm.com", "good.alarm.com","baidu.com","sohu.com","xinlang.com","erpx.com"]
    info_list = [
        ["u-locale=zh_CN; loginmainacctid="+get_random_person()+"; userticket=209@9889@23223@10.0.1.183@lis8; operatorId=" + get_random_jobnum() + "; com.huawei.boss.CURRENT_MENUID="+get_random_menu()+";", 3000],
		["u-locale=zh_CN; loginmainacctid="+get_random_person()+"; userticket=209@9889@23223@10.0.1.183@lis8; operatorId=" + get_random_jobnum() + "; com.huawei.boss.CURRENT_MENUID="+get_random_menu()+";", 3000]
    ]
	
	
    for i in range(len(info_list)):
        cookies = info_list[i][0]
        count = info_list[i][1]
        for j in range(count):
            api = random.choice(api_list)
            datalist["TCP_5011"].append(alarm(cookies, api))
    for key in datalist.keys():
        send_logs(datalist[key])
    print "510405场景的告警数据已生成"