Чекер ssh на ZennoPoster

По просьбам трудящихся выкладываю свой сниппет проверки соксов для зеннопостера.

Нам потребуются две дополнительные библиотеки: xNet и Renci.SshNet (они в приложении). Закидываем их в

ZennoLab\RU\ZennoPoster Pro\5.12.3.0\Progs\ExternalAssemblies

Добавляем их через References («Добавить ссылки из GAC»)

и подключаем через OwnCodeUses («Добавить директивы Using и общий код»)

Далее добавляем кубик «свой c# код» и вставляем туда код:

string input = project.Variables["account_ssh"].Value;
var account = input.Split(';').ToList();
string ip = account[0];
string port = account[1];
string login = account[2];
string pass = account[3];
string local_port = account[4];
var responce = "";

using (SshClient ssh = new SshClient(ip, int.Parse(port), login, pass))
{
 ssh.ConnectionInfo.Timeout = TimeSpan.FromSeconds(10);
 ssh.Connect();
 if (ssh.IsConnected)
 {
 var local_proxy = new ForwardedPortDynamic("127.0.0.1", uint.Parse(local_port));
 ssh.AddForwardedPort(local_proxy);
 local_proxy.Start();
 if (local_proxy.IsStarted)
 {
 using (var request = new HttpRequest())
 {
 request.Proxy = Socks5ProxyClient.Parse("127.0.0.1:" + local_port);
 responce = request.Get("ip-api.com/json/").ToString();
 }
 }
 ssh.Disconnect();
 }
}
return responce.Trim();

Где

project.Variables[«account_ssh»].Value входная строка с данными сокса в формате ип;порт;логин;пароль;локальный порт. Например 127.0.0.1;22;login;password;1080

В моем случае, обращение происходит к апи сервиса ip-api.com, и на выходе получаем json с информацией. Вы же можете менять этот урл на свой.

В общем так. Плюсом этого варианта стало снижение нагрузки на сервер.

Всем удачи и профита!

Скачать библиотеки

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *