Exemple #1
0
        JToken SsLink2Outbound(string ssLink)
        {
            Models.Datas.Shadowsocks ss = Misc.Utils.SsLink2Ss(ssLink);
            if (ss == null)
            {
                return(null);
            }

            VgcApis.Misc.Utils.TryParseAddress(ss.addr, out string ip, out int port);
            var outbSs = cache.tpl.LoadTemplate("outbSs");
            var node   = outbSs["settings"]["servers"][0];

            node["address"]  = ip;
            node["port"]     = port;
            node["method"]   = ss.method;
            node["password"] = ss.pass;

            return(outbSs);
        }
Exemple #2
0
        public static Models.Datas.Shadowsocks SsLink2Ss(string ssLink)
        {
            string b64 = GetLinkBody(ssLink);

            try
            {
                var ss        = new Models.Datas.Shadowsocks();
                var plainText = Base64Decode(b64);
                var parts     = plainText.Split('@');
                var mp        = parts[0].Split(':');
                if (parts[1].Length > 0 && mp[0].Length > 0 && mp[1].Length > 0)
                {
                    ss.method = mp[0];
                    ss.pass   = mp[1];
                    ss.addr   = parts[1];
                }
                return(ss);
            }
            catch { }
            return(null);
        }