예제 #1
0
def del_user(client_index):
    success, msg = True, "del user {} success!!!".format(client_index)
    try:
        loader.load_profile()
        group_list = loader.profile.group_list
        group, client_index = find_client(group_list, client_index)
        nw = NodeWriter()
        nw.del_user(group, client_index)
    except Exception as e:
        success = False
        msg = str(e)
    return jsonify(ResponseJson(success, msg).__dict__)
예제 #2
0
def del_group(group_tag):
    success, msg = True, "del group {} success!!!".format(group_tag)
    try:
        loader.load_profile()
        group_list = loader.profile.group_list
        group = list(filter(lambda group: group.tag == group_tag,
                            group_list))[0]
        nw = NodeWriter()
        nw.del_port(group)
    except Exception as e:
        success = False
        msg = str(e)
    return jsonify(ResponseJson(success, msg).__dict__)
예제 #3
0
def add_user():
    success, msg, kw = True, "add user success!!!", dict()
    try:
        json_request = json.loads(request.get_data())
        group_tag = json_request['group_tag']
        kw['email'] = json_request['email']
        loader.load_profile()
        group_list = loader.profile.group_list
        group = list(filter(lambda group: group.tag == group_tag,
                            group_list))[0]
        nw = NodeWriter(group.tag, group.index)
        nw.create_new_user(**kw)
    except Exception as e:
        success = False
        msg = str(e)
    return jsonify(ResponseJson(success, msg).__dict__)
예제 #4
0
def add_group():
    success, msg, kw, stream_type = True, "add group {} success!!!", dict(), ""
    try:
        json_request = json.loads(request.get_data())
        port = int(json_request['port'])
        stream_type = json_request['stream_type']

        from utils import stream_list
        stream_list = stream_list()
        if stream_type not in [x.value for x in stream_list]:
            raise ValueError("stream_type {} not found".format(stream_type))
        if "data" in json_request:
            kw = json_request['data']

        stream = list(
            filter(lambda stream: stream.value == stream_type, stream_list))[0]
        nw = NodeWriter()
        nw.create_new_port(port, stream, **kw)
        msg = msg.format(stream_type)
    except Exception as e:
        success = False
        msg = str(e)
    return jsonify(ResponseJson(success, msg).__dict__)
예제 #5
0
            if not is_email(email):
                print("不是合格的email格式,请重新输入")
                continue

            for loop_group in group_list:
                for node in loop_group.node_list:
                    if node.user_info == None or node.user_info == '':
                        continue
                    elif node.user_info == email:
                        print("已经有重复的email, 请重新输入")
                        is_duplicate_email = True
                        break
            if not is_duplicate_email:
                break

        nw = NodeWriter(group.tag, group.index)
        info = {'email': email}
        nw.create_new_user(**info)

    elif type(group.node_list[0]) == Socks:
        print("当前组为socks组, 请输入用户密码创建新的socks用户\n")
        user = input("请输入socks的用户名: ")
        password = input("请输入socks的密码: ")
        if user == "" or password == "":
            print("socks的用户名或者密码不能为空")
            exit(-1)
        info = {"user": user, "pass": password}
        nw = NodeWriter(group.tag, group.index)
        nw.create_new_user(**info)

    elif type(group.node_list[0]) == Mtproto:
예제 #6
0
        password = input("请输入socks的密码: ")
        if user == "" or password == "":
            print("socks的用户名或者密码不能为空")
            exit(-1)
        info = {"user": user, "pass": password}
    elif stream == StreamType.SS:
        sf = SSFactory()
        info = {"method": sf.get_method(), "password": sf.get_password()}
else:
    salt_stream = [
        StreamType.KCP_DTLS, StreamType.KCP_WECHAT, StreamType.KCP_UTP,
        StreamType.KCP_SRTP
    ]
    random.shuffle(salt_stream)
    stream = salt_stream[0]
    print(
        "随机一种 (srtp | wechat-video | utp | dtls) header伪装, 当前生成 {} \n".format(
            stream.value))

random_port = random.randint(1000, 65535)
new_port = input("产生随机端口{}, 回车直接以该端口新建Group, 否则输入自定义端口: ".format(random_port))

if not new_port:
    new_port = str(random_port)

if new_port.isnumeric():
    print("\n新端口为: {} \n".format(new_port))
    nw = NodeWriter()
    nw.create_new_port(int(new_port), stream, **info)
else:
    print("\n输入错误,请检查是否为数字")
예제 #7
0
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
from writer import NodeWriter
from selector import ClientSelector
from utils import clean_iptables

cs = ClientSelector('删除user')
client_index = cs.client_index
group = cs.group

if group == None:
    exit(-1)
else:
    print("你选择的user信息:")
    print(group.show_node(client_index))
    choice = input("是否删除y/n:").lower()
    if choice == 'y':
        if len(group.node_list) == 1:
            clean_iptables(group.port)
        nw = NodeWriter()
        nw.del_user(group, client_index)
    else:
        print("撤销删除")
예제 #8
0
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
from writer import NodeWriter
from selector import GroupSelector
from utils import clean_iptables

gs = GroupSelector('删除port')
group = gs.group

if group == None:
    pass
else:
    print("你要删除的Group组所有节点信息: ")
    print(group)
    choice = input("是否删除y/n:").lower()
    if choice == 'y':
        nw = NodeWriter()
        nw.del_port(group)
        clean_iptables(group.port)
    else:
        print("撤销删除")
예제 #9
0
        password = input("请输入socks的密码: ")
        if user == "" or password == "":
            print("socks的用户名或者密码不能为空")
            exit(-1)
        info = {"user": user, "pass": password}
    elif protocol == StreamType.SS:
        sf = ss.SSFactory()
        info = {"method": sf.get_method(), "password": sf.get_password()}
else:
    salt_protocol = [
        StreamType.KCP_DTLS, StreamType.KCP_WECHAT, StreamType.KCP_UTP,
        StreamType.KCP_SRTP
    ]
    random.shuffle(salt_protocol)
    protocol = salt_protocol[0]
    print(
        "随机一种 (srtp | wechat-video | utp | dtls) header伪装, 当前生成 {} \n".format(
            protocol.value))

random_port = random.randint(1000, 65535)
new_port = input("产生随机端口{}, 回车直接以该端口新建Group, 否则输入自定义端口: ".format(random_port))

if not new_port:
    new_port = str(random_port)

if new_port.isnumeric():
    print("\n新端口为: {} \n".format(new_port))
    nw = NodeWriter()
    nw.create_new_port(int(new_port), protocol, **info)
else:
    print("\n输入错误,请检查是否为数字")