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); }
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); }