Капомнстр и рекапча 2(невозможность работы без зенки).

Zwer1992

Client
Регистрация
23.11.2015
Сообщения
70
Благодарностей
3
Баллы
8
Капомнстр и рекапча 2(невозможность работы без зенки).
Почему есть тока возможность отправки рекапчи 2 в капмонстр только через зенку?Допустим я хочу чтоб она шла туда с самописного софта который написан на сишарпе?
 

copper12

Client
Регистрация
26.11.2016
Сообщения
1 111
Благодарностей
260
Баллы
63

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 227
Благодарностей
5 844
Баллы
113
Почему нет возможности отправки рекапчи2 без зенки?)
Как описано в статье в справке, при отправке каптчи в CapMonster2 вам необходимо сформировать запрос, который будет включать изображение из нескольких вариантов ответов и задание в виде дополнительного параметра. Имя параметра: «Task». Значение - задание самой рекапчи, например «Дорожные знаки»
 

Zwer1992

Client
Регистрация
23.11.2015
Сообщения
70
Благодарностей
3
Баллы
8
Вы можете отправлять капчи, используя API Антигейта - https://anticaptcha.atlassian.net/wiki/spaces/API/pages/6389766/C
Затем с помощью КапМонстра перехватывать запросы, приходящие на Антигейт
Почему нет возможности отправки рекапчи2 без зенки?)
Как описано в статье в справке, при отправке каптчи в CapMonster2 вам необходимо сформировать запрос, который будет включать изображение из нескольких вариантов ответов и задание в виде дополнительного параметра. Имя параметра: «Task». Значение - задание самой рекапчи, например «Дорожные знаки»
Точнее в будущем не планируется поддержка рукапчи через через SITEKEY(именно в капмостре,а не в зенке) ?
 
Последнее редактирование:

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 227
Благодарностей
5 844
Баллы
113
Точнее в будущем не планируется поддержка рукапчи через через SITEKEY(именно в капмостре,а не в зенке) ?
Планируется. Придумываем схему работы. нужно как-то браузер в программу встроить чтобы разгадывать через токен.
Возможно в скором будущем реализуем поддержку SiteKey в КапМонстре.
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 227
Благодарностей
5 844
Баллы
113
Кстати, вот пример запроса как можно отправить Recaptcha2 из стороннего софте с помощью C#:
Код:
public string PostCaptchaToAntigate(Bitmap bitmap, string url, string captchaKey, string additionalParams="CapMonsterModule=ZennoLab.ReCaptcha2&Task=\"cars\"")
{
    string res = "Error";
    var myReq = (HttpWebRequest)WebRequest.Create(string.Format("http://{0}/in.php", url));
    myReq.UserAgent = "TubeCast v1.0";
    myReq.Accept = "*/*";
    myReq.Headers.Add("Accept-Language", "ru");
    myReq.Host = "antigate.com";
    myReq.KeepAlive = true;
    myReq.AllowAutoRedirect = false;
    myReq.Method = "POST";
    string sBoundary = DateTime.Now.Ticks.ToString("x");
    myReq.ContentType = "multipart/form-data; boundary=" + sBoundary;
    string sPostMultiString = "";
    sPostMultiString += MultiFormData("method", "post", sBoundary);
    sPostMultiString += MultiFormData("soft_id", "0", sBoundary);
    sPostMultiString += MultiFormData("key", captchaKey, sBoundary);
    try
    {
        var pear = additionalParams.Split('&');
        foreach (string str in pear)
        {
            var pV = str.Split('=');
            if (pV.Length >= 2) sPostMultiString += MultiFormData(pV[0], pV[1], sBoundary);
        }
    }
    catch
    {
    }
    var bitmapByte = ToArray(bitmap, ImageFormat.Png);
    string sFileContent = Encoding.GetEncoding(1251).GetString(bitmapByte);
    sPostMultiString += MultiFormDataFile("file", sFileContent, "Collection.png", "image/png", sBoundary);
    sPostMultiString += "--" + sBoundary + "--\r\n\r\n";
   
    var byteArray = Encoding.GetEncoding(1251).GetBytes(sPostMultiString);
    myReq.ContentLength = byteArray.Length;
    try
    {
        myReq.GetRequestStream().Write(byteArray, 0, byteArray.Length);
        var ret = (HttpWebResponse)myReq.GetResponse();
        var reader = new StreamReader(ret.GetResponseStream(), Encoding.GetEncoding(1251));
        var pg = reader.ReadToEnd();
        var pars = pg.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
        res = pars.Length > 1 ? pars[1] : pg;
        return res;
    }
    catch (Exception ex)
    {
    }
    return res;
}
private string MultiFormData(string key, string value, string boundary)
{
    var output = string.Format("--{0}\r\n", boundary);
    output += string.Format("Content-Disposition: form-data; name=\"{0}\"\r\n\r\n", key);
    output += value + "\r\n";
    return output;
}
private string MultiFormDataFile(string key, string value, string fileName, string fileType, string boundary)
{
    var output = string.Format("--{0}\r\n", boundary);
    output += string.Format("Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\n", key, fileName);
    output += string.Format("Content-Type: {0} \r\n\r\n", fileType);
    output += string.Format("{0}\r\n", value);
    return output;
}
private byte[] ToArray(Bitmap image, ImageFormat format)
{
    byte[] bytes;
    using (var ms = new MemoryStream())
    {
        image.Save(ms, format);
        bytes = ms.ToArray();
    }
    return bytes;
}
 

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