Exemple #1
0
        private static void VmessNode(string url)
        {
            var nodeBase = url.Replace("vmess://", "");
            var node     = Base64.Decode(nodeBase);
            var json     = JObject.Parse(node);
            var version  = json["v"].ToString();

            if (version != "2")
            {
                return;
            }

            var server   = json["host"].ToString();
            var port     = Convert.ToInt32(json["port"]);
            var alterId  = Convert.ToInt32(json["aid"]);
            var id       = json["id"].ToString();
            var network  = json["net"].ToString();
            var security = json["tls"].ToString();
            var path     = json["path"].ToString();
            var remark   = json["ps"].ToString();

            if (server.Contains("账户状态"))
            {
                userInfo = $"{server}:{remark}";
            }
            else
            {
                var v = new Vmess
                {
                    Name     = remark,
                    Address  = server,
                    Port     = port,
                    AlterID  = alterId,
                    ID       = id,
                    Network  = network,
                    Security = security,
                    Path     = path
                };
                vmesses.Add(v);
            }
        }
Exemple #2
0
        private static void ChangeVmess(Vmess vmess)
        {
            var jObject = ReadConfig();
            var jArray  = jObject["outbounds"].ToObject <JArray>();

            foreach (var item in jArray)
            {
                if (item["tag"].ToString() == "proxy")
                {
                    item["settings"]["vnext"][0]["address"]             = vmess.Address;
                    item["settings"]["vnext"][0]["port"]                = vmess.Port;
                    item["settings"]["vnext"][0]["users"][0]["id"]      = vmess.ID;
                    item["settings"]["vnext"][0]["users"][0]["alterId"] = vmess.AlterID;
                    item["streamSettings"]["network"]  = vmess.Network;
                    item["streamSettings"]["security"] = vmess.Security;
                    item["streamSettings"]["tlsSettings"]["serverName"]     = vmess.Address;
                    item["streamSettings"]["wsSettings"]["path"]            = vmess.Path;
                    item["streamSettings"]["wsSettings"]["headers"]["Host"] = vmess.Address;
                }
                break;
            }
            jObject["outbounds"] = jArray;
            WriteConfig(jObject);
        }