Как разделить прокси?

mrgreyarbtr

Пользователь
Регистрация
01.10.2022
Сообщения
99
Благодарностей
30
Баллы
18
Есть такой код

// входная строка string proxy = project.Variables["proxy"].Value; // разделение
string[] split = proxy.Split('@'); string ip = split[0].Split(':')[0];
string port = split[0].Split(':')[1];
string login = split[1].Split(':')[0];
string pass = split[1].Split(':')[1]; // результат по переменным
project.Variables["Ip"].Value = ip;
project.Variables["Port"].Value = port;
project.Variables["Proxy_Login"].Value = login;
project.Variables["Proxy_Pass"].Value = pass;

как мне разделить прокси такого формата

socks5://root:[email protected]:1111

чтобы получить следующее по переменным

socks5 - {-Variables.proto-}
root - {-Variables.Proxy_Login-}
root - {-Variables.Proxy_Pass-}
1.1.1.1 - {-Variables.Ip-}
1111 - {-Variables.Port-}

если протокола нету, то назначить в переменную http
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 641
Баллы
113
C#:
string proxy = project.Variables["proxy"].Value.Trim();
string pattern_prot = @"(?i)^(https?|socks4|socks5)://";

string prot = "http";
Match match = Regex.Match(proxy, pattern_prot);
if (match.Success)
{
    prot = match.Groups[1].Value;
    proxy = proxy.Remove(0, match.Groups[0].Value.Length);
}

string[] split = proxy.Split('@');
string ip = split[0].Split(':')[0];
string port = split[0].Split(':')[1];
string login = split[1].Split(':')[0];
string pass = split[1].Split(':')[1]; // результат по переменным

project.Variables["proto"].Value = prot;
project.Variables["Ip"].Value = ip;
project.Variables["Port"].Value = port;
project.Variables["Proxy_Login"].Value = login;
project.Variables["Proxy_Pass"].Value = pass;
 
  • Спасибо
Реакции: mrgreyarbtr

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)