using Netch.Models;
namespace Netch.Servers;
public class Socks5Server : Server
{
public override string Type { get; } = "SOCKS";
///
/// 密码
///
public string? Password { get; set; }
///
/// 账号
///
public string? Username { get; set; }
public string? RemoteHostname { get; set; }
///
/// 版本
///
public string Version { get; set; } = SOCKSGlobal.Versions[0];
public override string MaskedData()
{
return $"Auth: {Auth()}";
}
public Socks5Server()
{
}
public Socks5Server(string hostname, ushort port)
{
Hostname = hostname;
Port = port;
}
public Socks5Server(string hostname, ushort port, string username, string password) : this(hostname, port)
{
Username = username;
Password = password;
}
public Socks5Server(string hostname, ushort port, string remoteHostname) : this(hostname, port)
{
RemoteHostname = remoteHostname;
}
public bool Auth()
{
return !string.IsNullOrWhiteSpace(Username) && !string.IsNullOrWhiteSpace(Password);
}
}
public class SOCKSGlobal
{
public static readonly List Versions = new()
{
"5",
"4a",
"4"
};
}