using System; using System.Collections.Generic; namespace Netch.Models.Server.Socks { public class Socks : Server { public Socks() { this.Type = ServerType.Socks; } /// /// 账号 /// [Newtonsoft.Json.JsonProperty("username")] public string Username; /// /// 密码 /// [Newtonsoft.Json.JsonProperty("password")] public string Password; /// /// 解析链接 /// /// 链接 /// 是否成功 public bool ParseLink(string link) { var list = link .Replace("tg://socks?", "") .Replace("https://t.me/socks?", "") .Split('&'); var dict = new Dictionary(); for (int i = 0; i < list.Length; i++) { var s = list[i].Split('='); if (s.Length != 2) { continue; } dict[s[0]] = s[1]; } if (!dict.ContainsKey("server") || !dict.ContainsKey("port") || !ushort.TryParse(dict["port"], out _)) { return false; } this.Host = dict["server"]; this.Port = ushort.Parse(dict["port"]); if (dict.ContainsKey("user") && !String.IsNullOrEmpty(dict["user"])) { this.Username = dict["user"]; } if (dict.ContainsKey("pass") && !String.IsNullOrEmpty(dict["pass"])) { this.Username = dict["pass"]; } return true; } } }