تجاوز CAPTCHA باستخدام C#
ادمج مكتبة C# للكتابة التلقائية لـ CAPTCHA. يمكن دمج API في أي سكربت.
حزمة CSharp لتكامل سهل مع API لخدمة حل CAPTCHA في 2Captcha لتجاوز reCAPTCHA وArkose captcha وGeetest وحل أي CAPTCHA أخرى
بدء سريعالتثبيت
يمكن تثبيت حزمة السكربت عبر مدير الحزم أو يدويًا
NuGet
لتثبيت حزمة المكتبة تلقائيًا، استخدم الحل القياسي لحزم CSharp وهو NuGet. قم بتنزيله من الرابط وثبّته حسب التعليمات. بعد تثبيت التطبيق، ثبّت حزمة المكتبة المطلوبة
ندعوك لاستكشاف مستودعنا على GitHub حيث ستجد مكتبات وSDK لتكامل سهل مع API الخاص بنا.
الإعداد
وصف لجميع المعلمات اللازمة لتهيئة الحزمة المثبتة
يمكن إنشاء مثيل من فئة TwoCaptcha هكذا:
TwoCaptcha solver = new TwoCaptcha('YOUR_API_KEY');يمكنك أيضًا تخصيص بعض الخيارات للمثيل الذي تم إنشاؤه:
solver.SoftId = 123;
solver.Callback = "https://your.site/result-receiver";
solver.DefaultTimeout = 120;
solver.RecaptchaTimeout = 600;
solver.PollingInterval = 10;خيارات مثيل TwoCaptcha
| الخيار | القيمة الافتراضية | الوصف |
|---|---|---|
| softId | - | معرّف برنامجك الذي تحصل عليه بعد النشر في كتالوج برامج 2Captcha |
| callback | - | رابط خادم الويب الذي يستقبل نتيجة التعرّف على CAPTCHA. يجب تسجيل الرابط أولًا في إعدادات pingback في حسابك |
| defaultTimeout | 120 | مهلة الاستطلاع بالثواني لجميع أنواع CAPTCHA باستثناء reCAPTCHA. تحدد مدة محاولة SDK للحصول على الإجابة من نقطة نهاية API res.php |
| recaptchaTimeout | 600 | مهلة الاستطلاع لـ reCAPTCHA بالثواني. تحدد مدة محاولة SDK للحصول على الإجابة من نقطة نهاية API res.php |
| pollingInterval | 10 | الفاصل بالثواني بين الطلبات إلى نقطة نهاية API res.php، ولا يُنصح بقيم أقل من 5 ثوانٍ |
مهم: عند تعيينcallbackلمثيلTwoCaptchaستُرجع جميع الطرق فقط معرّف CAPTCHA ولن تقوم باستطلاع API للحصول على النتيجة. سيتم إرسال النتيجة إلى رابط callback. للحصول على الإجابة يدويًا استخدم طريقة getResult
حل CAPTCHA
عند إرسال أي CAPTCHA تعتمد على صورة، يمكنك توفير خيارات إضافية لمساعدة عاملي 2Captcha على حلّها بشكل صحيح
خيارات CAPTCHA
| الخيار | القيمة الافتراضية | الوصف |
|---|---|---|
| numeric | 0 | يحدد ما إذا كانت CAPTCHA تحتوي أرقامًا أو رموزًا أخرى اطّلع على التفاصيل في مستندات API |
| minLength | 0 | الحد الأدنى لطول الإجابة |
| maxLength | 0 | الحد الأقصى لطول الإجابة |
| phrase | 0 | يحدد ما إذا كانت الإجابة متعددة الكلمات أم لا |
| caseSensitive | 0 | يحدد ما إذا كانت الإجابة حساسة لحالة الأحرف |
| calc | 0 | يحدد ما إذا كانت CAPTCHA تتطلب حسابًا |
| lang | - | يحدد لغة CAPTCHA، راجع قائمة اللغات المدعومة |
| hintImg | - | صورة تلميح تظهر للعاملين مع CAPTCHA |
| hintText | - | نص تلميح/مهمة يظهر للعاملين مع CAPTCHA |
مثال أساسي
يوضح المثال أدناه استدعاءً أساسيًا للحل مع معالجة الأخطاء.
Normal captcha = new Normal();
captcha.SetFile("path/to/captcha.jpg");
captcha.SetMinLen(4);
captcha.SetMaxLen(20);
captcha.SetCaseSensitive(true);
captcha.SetLang("en");
try
{
await solver.Solve(captcha);
Console.WriteLine("Captcha solved: " + captcha.Code);
}
catch (Exception e)
{
Console.WriteLine("Error occurred: " + e.Message);
}لتجاوز CAPTCHA العادية (نص مشوّه داخل صورة) استخدم الطريقة التالية. يمكن أيضًا استخدام هذه الطريقة للتعرّف على أي نص داخل الصورة.
Normal captcha = new Normal();
captcha.SetFile("path/to/captcha.jpg");
captcha.SetNumeric(4);
captcha.SetMinLen(4);
captcha.SetMaxLen(20);
captcha.SetPhrase(true);
captcha.SetCaseSensitive(true);
captcha.SetCalc(false);
captcha.SetLang("en");
captcha.SetHintImg(new FileInfo("path/to/hint.jpg"));
captcha.SetHintText("Type red symbols only");يمكن استخدام هذه الطريقة لتجاوز CAPTCHA تتطلب الإجابة عن سؤال مقدّم كنص واضح.
Text captcha = new Text();
captcha.SetText("If tomorrow is Saturday, what day is today?");
captcha.SetLang("en");استخدم هذه الطريقة لحل reCAPTCHA V2 والحصول ع لى token لتجاوز الحماية.
ReCaptcha captcha = new ReCaptcha();
captcha.SetSiteKey("6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-");
captcha.SetUrl("https://mysite.com/page/with/recaptcha");
captcha.SetInvisible(true);
captcha.SetAction("verify");
captcha.SetProxy("HTTPS", "login:password@IP_address:PORT");توفر هذه الطريقة حلّال reCAPTCHA V3 وتُرجع token.
ReCaptcha captcha = new ReCaptcha();
captcha.SetSiteKey("6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-");
captcha.SetUrl("https://mysite.com/page/with/recaptcha");
captcha.SetVersion("v3");
captcha.SetDomain("google.com");
captcha.SetAction("verify");
captcha.SetScore(0.3);
captcha.SetProxy("HTTPS", "login:password@IP_address:PORT");