بڑے پیمانے پر ویب اسکریپنگ میں بلاک کی شرح کو کم کرنے کے طریقے

آپ کی پائپ لائنز اس وجہ سے ناکام نہیں ہوتیں کہ ڈیٹا موجود نہیں ہے۔ وہ اس وجہ سے ناکام ہوتی ہیں کہ سائٹس جواب دیتی ہیں۔ بلاکس صاف ڈیٹا کو خلا، دوبارہ کوششوں، اور چھوٹے SLA میں تبدیل کر دیتے ہیں۔ اگر آپ کو بڑے پیمانے پر بلاک کی شرح کم کرنے کی ضرورت ہے تو یہ رہنما آپ کو ہدف کی پروفائلنگ، صحیح ٹرانسپورٹ کا انتخاب، پروکسیز اور سیشنز کو ایڈجسٹ کرنے، اور اہم سگنلز کی نگرانی کرنے کا طریقہ دکھاتا ہے۔ آپ کو کیا ملے گا: ایک فیلڈ ٹیسٹ کیا ہوا فریم ورک جسے آپ نافذ کر سکتے ہیں اور ناپ سکتے ہیں۔
مختصراً: بلاکس کو کم کرنے کے لیے، اپنی درخواست کی شناخت اور رفتار کو ہر سائٹ کے عام صارف کے رویے کے ساتھ ہم آہنگ کریں، صحیح پروکسی مکس کا انتخاب کریں، سیشن کی زندگی کے چکر کا انتظام کریں، چیلنجز کو تیزی سے دریافت کریں، اور ہدف کے مطابق ہم وقتی کو ایڈجسٹ کریں۔ تفصیلی نتائج کو لاگ کریں، پھر چھوٹے، کنٹرول شدہ تبدیلیوں کے ساتھ دوبارہ کوشش کریں۔
حقیقی دنیا میں بلاک کی شرح کیوں بڑھتی ہے
جب آپ کا ٹریفک غیر معمولی نظر آتا ہے یا بہت تیزی سے پہنچتا ہے تو بلاکس بڑھتے ہیں۔ یہ IP کے پیٹرن، ہیڈرز، وقت، یا بار بار کے راستے ہو سکتے ہیں جو حقیقی صارفین سے میل نہیں کھاتے۔ WAFs ان سگنلز کو ملا کر CAPTCHA، 429/403 جوابات، یا خام HTML جال کے ساتھ رگڑ بڑھا دیتے ہیں۔
کاروباری زاویے سے، اعلی بلاک کی شرح کامیاب صفحے کی قیمت کو بڑھاتی ہے، قیمت کی جانچ میں تاخیر کرتی ہے، اور فیصلہ سازی کی رفتار کو متاثر کرتی ہے۔ انجینئرنگ کے زاویے سے، اس کا مطلب ہے نازک کام، شور مچانے والے الرٹس، اور بھاری دوبارہ پروسیسنگ۔ حل ایک نظام ہے، کوئی چال نہیں۔
دیکھنے (اور تعریف کرنے) کے لیے میٹرکس
- بلاک کی شرح: بلاک شدہ جوابات / کل جوابات، ہر ہدف اور ہر راستے کے لیے۔
- CPSR: اسے اندرونی طور پر اپنے صاف صفحے کی کامیابی کی شرح کے طور پر بیان کریں۔ وضاحت کے لیے بلاک کی شرح کے ساتھ ٹریک کریں۔
- جغرافیائی درستگی: جواب کی فیصد جو مطلوبہ ملک/علاقے سے فراہم کی گئی۔
- سیشن کی استحکام: ناکامی سے پہلے ہر سیشن میں اوسط درخواستیں۔
- اپ ٹائم اور غلطی کا بجٹ: ہر کام کے لیے SLOs کے اندر وقت۔
- انجینئرنگ اوور ہیڈ: دوبارہ چلانے اور دستی اصلاحات پر صرف کردہ وقت۔
ان پر متفق ہوں اس سے پہلے کہ آپ ایڈجسٹ کریں۔ آپ بلاک کی شرح کو کم نہیں کر سکتے اگر آپ نہیں جانتے کہ یہ کہاں اور کیوں بڑھ رہی ہے۔
بلاکس کو کم کرنے کے لیے ایک عملی فریم ورک
- ہر ہدف کی پروفائلنگ کریں
- راستے کا نقشہ: فہرست، تفصیل، تلاش، لاگ ان، کارٹ۔
- حساس کارروائیوں کی شناخت کریں: POSTs، تصدیق شدہ مراحل، سوالات سے بھرپور اینڈ پوائنٹس۔
- معمول کے بوجھ کی بنیاد: درخواست کا سائز، وسائل کا مکس، اور وقت۔
- حقیقت کے مطابق ٹرانسپورٹ کا ملاپ کریں
- سٹیٹک صفحات کے لیے ایک HTTP کلائنٹ سے شروع کریں۔
- جب آپ متحرک رینڈرنگ، مضبوط کلائنٹ چیک، یا مستقل چیلنجز دیکھیں تو ہیڈلیس براؤزر میں سوئچ کریں۔
- شناخت اور حالت کو کنٹرول کریں
- صحیح پروکسی کی قسم اور گردش کی حکمت عملی کا انتخاب کریں۔
- حقیقت پسندانہ ہیڈرز اور زبانیں استعمال کریں؛ انہیں ہر سیشن کے مطابق مستقل رکھیں۔
- ٹریفک کی رفتار اور شکل
- ہم وقتی اور جھٹکا انسانی براؤزنگ کی عکاسی کرنی چاہیے۔
- چیلنج سگنلز پر بیک آف اور سیشن ری سیٹس شامل کریں۔
- دریافت کریں، لیبل کریں، ایڈاپٹ کریں
- نتائج کو لیبل کریں (200-صاف، 200-چیلنج، 403، 429، نرم بلاک شدہ HTML، CAPTCHA) اور اگلی بار میں ایڈاپٹ کریں۔
پروکسی کی حکمت عملی کا انتخاب
ڈیٹا سینٹر کے IPs تیز، قابل پیش گوئی، اور لاگت میں مؤثر ہیں، لیکن کچھ سائٹس انہیں جلدی سے نشان زد کرتی ہیں۔ وہ کم تحفظ والے راستوں، APIs، یا کم حساس اثاثوں پر اچھی کارکردگی کا مظاہرہ کرتے ہیں۔ خصوصیات اور تجارتی فوائد میں مزید گہرائی کے لیے، ہمارے ڈیٹا سینٹر پروکسیز کا جائزہ دیکھیں۔
رہائشی یا موبائل IPs صارفین کی ٹریفک کے ساتھ مل جاتے ہیں اور رفتار اور تغیر کی قیمت پر سخت چیک پاس کرتے ہیں۔ وہ محفوظ سائٹس، ریٹیل صفحات، اور لاگ ان کے بہاؤ پر چمکتے ہیں۔ ہم نیچے گردش اور سیشن کی حکمت عملی پر بات کریں گے۔
IPs کو گھمائیں، گرم کریں، اور مانیٹر کریں
- جب کسی بہاؤ کو حالت کی ضرورت ہو (تلاش → تفصیل → کارٹ میں شامل کریں) تو چپکنے والے سیشنز کا استعمال کریں۔ انگلیوں کے نشانات کے جمع ہونے سے بچنے کے لیے چند صفحات کے بعد سیشن کو ری سیٹ کریں۔
- ایک صفحے کی فچ کے لیے جارحانہ طور پر گھمائیں۔ حساس راستوں پر ایک ہی IP سے بیک ٹو بیک ہٹس سے بچیں۔
- گرم پولز: نئے IPs کو نہ دھکیلیں۔ کم ہم وقتی سے شروع کریں اور بڑھائیں۔
- ASN تنوع اور ISP مکس کی نگرانی کریں۔ اگر بلاکس چند نیٹ ورکس پر بڑھتے ہیں تو انہیں فلٹر کریں۔ بھاری WAF کی نگرانی کے تحت راستوں کے لیے، پاس کی شرح کو بہتر بنانے کے لیے رہائشی پروکسیز جیسے وسیع پول پر غور کریں۔
درخواست کا معیار: ہیڈرز، زبانیں، اور TLS کی حیثیت
- ہر سیشن کے لیے ایک مستقل فنگر پرنٹ رکھیں: User-Agent، Accept-Language، viewport، پلیٹ فارم۔ ہر درخواست کے لیے ہر فیلڈ کو بے ترتیب کرنا جعلی لگ سکتا ہے۔
- اسی زبان اور انکوڈنگ کی خدمت کریں جس کی سائٹ اس علاقے کے صارفین سے توقع کرتی ہے۔
- اگر آپ TLS- یا JA3 پر مبنی رکاوٹیں دیکھتے ہیں، تو عام کلائنٹ پروفائلز کے ایک چھوٹے سیٹ سے میل کھائیں بجائے اس کے کہ بے انتہا مختلف حالتیں پیدا کریں۔
ہم وقتی، وقت، اور راستے کی مختلف قسم
- رفتار کے ساتھ ہم وقتی استعمال کریں: ہر ہدف کے لیے حدیں مقرر کریں اور تاخیر میں جٹر شامل کریں۔ تیز رفتار پیٹرن ریٹ کی حدوں کو متحرک کرتے ہیں۔
- راستوں کو پھیلائیں: ایک ہی SKU یا تلاش کے سوال کو تنگ لوپ میں نہ ماریں۔
- سرور کے اشاروں کا احترام کریں: 429 کا مطلب ہے آہستہ ہو جائیں؛ CAPTCHA کے بعد 403 کا مطلب ہے شناخت تبدیل کریں اور ٹھنڈا کریں۔
CAPTCHA، چیلنجز، اور متبادل
- جلدی پتہ لگائیں: چیلنج کی کلیدی الفاظ یا منفرد DOM نوڈز تلاش کریں اس سے پہلے کہ کسی صفحے کو صاف سمجھا جائے۔
- فیصلہ کریں: حل کریں، ٹرانسپورٹ تبدیل کریں، یا چھوڑ دیں۔ اگر حل کرنا اجازت ہے، تو اسے سب سے چھوٹے سطح کے علاقے کے لیے الگ کریں اور وقت کا بجٹ بنائیں۔
- جدید WAF بہاؤ کے لیے، انسانی مانند نیویگیشن کے وقت کے ساتھ ایک ہیڈلیس براؤزر CPSR کو بڑھا سکتا ہے۔ اسے منتخب طور پر استعمال کریں تاکہ لاگت کو کنٹرول کیا جا سکے۔
عمل درآمد کی کتاب
- مرحلہ 1: ہدف پروفائلز۔ راستوں، محافظوں، اور قابل قبول بوجھ کی دستاویز کریں۔
- مرحلہ 2: ہر راستے کے لیے پروکسی پالیسی۔ یہ طے کریں کہ کون سا IP قسم، گردش کی تعدد، اور چپکنے کی ضرورت ہے۔
- مرحلہ 3: درخواست کے سانچے۔ ہر جغرافیائی علاقے کے لیے ہیڈر سیٹ اور زبانوں کو لاک کریں۔
- مرحلہ 4: ہم وقتی منصوبہ۔ ہر ہدف کے لیے حدیں اور جٹر کی حدود قائم کریں۔
- مرحلہ 5: چیلنج کی شناخت۔ 403/429، CAPTCHA DOMs، اور نرم بلاک HTML کے لیے ڈیٹیکٹر شامل کریں۔
- مرحلہ 6: موافق منطق۔ چیلنج پر، IP یا سیشن کو تبدیل کریں، ہم وقتی کو کم کریں، یا ٹرانسپورٹ تبدیل کریں۔
- مرحلہ 7: لاگنگ۔ درخواست-id، IP/ASN، ملک، سیشن-id، راستہ، نتیجہ لیبل، تاخیر، اور HTML ہیش کو محفوظ کریں۔
- مرحلہ 8: جائزہ لوپ۔ بلاک کی شرح اور CPSR کا ہفتہ وار جائزہ؛ چھوٹی تبدیلیاں بھیجیں اور A/B ٹیسٹ کریں۔
فیصلہ سازی کی مدد: صحیح ٹرانسپورٹ کا انتخاب کریں
| آپ کا مشاہدہ کردہ اشارہ | HTTP کلائنٹ کو ترجیح دیں | ہیڈلیس براؤزر کو ترجیح دیں |
| Static HTML، سادہ راستے | ✓ | |
| بھاری کلائنٹ سائیڈ رینڈرنگ | | ✓ |
| بار بار JS چیلنجز | | ✓ |
| سخت SLA، بڑی مقدار | ✓ | |
| لاگ ان بہاؤ | | ✓ |
سادہ الفاظ میں: وہ سب سے سادہ ٹول استعمال کریں جو صاف طور پر گزرے؛ صرف اس وقت بڑھائیں جب اشارے آپ کو ضرورت دکھائیں۔
حقیقی دنیا کے منظرنامے
-
ریٹیل قیمتیں: آپ کا ڈیٹا سینٹر پول زمرہ کے صفحات پر ٹھیک چلتا ہے لیکن تین درخواستوں کے بعد 403s کے ساتھ پروڈکٹ کی تفصیلات پر رک جاتا ہے۔ حل: تفصیلی صفحات کو چپکنے والے رہائشی سیشنز میں تبدیل کریں جن میں اعتدال پسند گردش ہو، 500–1200 ملی سیکنڈ جٹر شامل کریں، اور ہر ڈومین کے لیے ہم وقتی کی حد مقرر کریں۔ نتیجہ: بلاکس کی تعداد کم اور دوبارہ کوشش کرنے کی چکر کم۔
-
سفر کی تلاش: تلاش کے اختتام پر ریٹ کی حدیں اور وقفے وقفے سے CAPTCHA دکھائی دیتے ہیں۔ حل: علاقوں کے درمیان سوالات تقسیم کریں، ہر اکاؤنٹ کے لیے ٹوکن بالٹی کی رفتار شامل کریں، اور CAPTCHA کے خطرے والے مراحل کو ہیڈلیس براؤزر میں منتقل کریں جبکہ نتائج کی تلاش HTTP کلائنٹ میں رکھیں۔
بلاک کی شرح کو تیزی سے کم کریں: پانچ فوری کامیابیاں
- ہر راستے کے لیے ہم وقتی کی حد مقرر کریں، نہ کہ ہر ڈومین کے لیے۔ حساس اختتام کو کم حدوں کی ضرورت ہوتی ہے۔
- ہر جغرافیائی علاقے کے لیے ہیڈرز اور زبانوں کو معمول پر لائیں؛ ہر درخواست کو بے ترتیب کرنا بند کریں۔
- چپکنے والے سیشن صرف جہاں ضرورت ہو متعارف کریں؛ ایک مقررہ تعداد میں صفحات کے بعد دوبارہ ترتیب دیں۔
- جلدی چیلنج کی شناخت شامل کریں اور معلوم نرم بلاک HTML پر دوبارہ کوششوں کو مختصر کریں۔
- 403/429 کے فوراً بعد شناخت تبدیل کریں اور اس ہدف کو چند منٹ کے لیے ٹھنڈا کریں۔
درمیانی یاد دہانی: بلاک کی شرح کو کم کرنے کا سب سے تیز طریقہ یہ ہے کہ اس مخصوص سائٹ اور راستے کے لیے ٹریفک کو معمول کے مطابق دکھایا جائے۔
توثیق اور نگرانی: ثابت کریں کہ یہ کام کرتا ہے
- ایک پائلٹ کے ساتھ شروع کریں: پرانے بمقابلہ نئے سیٹنگز کے ساتھ 24–72 گھنٹے کا A/B چلائیں۔
- پائلٹ میں توثیق کے لیے مثال کے ہدف: محفوظ راستوں پر بلاک کی شرح کو 20–40% کم کریں؛ CPSR کو 10–25% تک بڑھائیں؛ جغرافیائی درستگی کو 95% سے اوپر رکھیں۔
- ڈیش بورڈز: ہر ہدف کی بلاک کی شرح، CPSR، ناکامی سے پہلے سیشن کی لمبائی، IP پول کی صحت، اور دوبارہ کوششوں کی مقدار۔
- الرٹس: نرم بلاک HTML ہیش میں اضافہ، بڑھتے ہوئے 429s، یا اچانک جغرافیائی انحراف۔
اس سے محتاط رہیں
- زیادہ تبدیلی: ہر درخواست پر شناخت تبدیل کرنا مشکوکیت کو جنم دیتا ہے اور تاخیر میں اضافہ کرتا ہے۔
- ایک ہی سائز سب کے لیے: جو بلاگ کے لیے کام کرتا ہے وہ کارٹ یا لاگ ان پر ناکام ہو جائے گا۔
- روبوٹس اور شرائط و ضوابط کو نظر انداز کرنا: قانونی اور تعمیل کے خطرات تیزی سے بڑھتے ہیں؛ اپنی حکومتی ٹیم کے ساتھ ہم آہنگی کریں۔
- بہترین فنگر پرنٹس کا پیچھا کرنا: مستقل مزاجی اور ممکنہ حقیقت پسندی پر توجہ مرکوز کریں، نہ کہ بے انتہا بے ترتیب تبدیلی پر۔
پروکسی استعمال کے کیسز کے لیے حکمت عملی کا نقشہ
عمودی اور راستے مختلف ہیں۔ مسابقتی قیمتوں، برانڈ کی نگرانی، اشتہار کی تصدیق، اور سفر کی تلاش ہر ایک مختلف حصوں پر زور دیتے ہیں۔ جہاں ہر نقطہ نظر فٹ بیٹھتا ہے اس کے لیے مزید سیاق و سباق کے لیے، ان عملی پروکسی استعمال کے کیسز کو دیکھیں۔
اکثر پوچھے جانے والے سوالات
میں بلاک کی شرح کو مستقل طور پر کیسے متعین اور ناپ سکتا ہوں؟
فیصلہ کریں کہ آپ کی ٹیم کے لیے بلاک کیا شمار ہوتا ہے: واضح غلطیاں (403/429)، CAPTCHA، اور نرم بلاک HTML۔ نتائج کو درخواست کی سطح پر لیبل کریں اور ہر راستے کے لحاظ سے جمع کریں۔ اس تعریف کو ٹیسٹ کے دوران مستحکم رکھیں تاکہ آپ تبدیلیوں کا موازنہ کر سکیں۔
مجھے کب ڈیٹا سینٹر سے رہائشی IPs پر منتقل ہونا چاہیے؟
جب محفوظ راستوں پر بلاک بڑھ رہے ہوں حالانکہ رفتار اور صاف ہیڈرز موجود ہیں تو تبدیل کریں۔ قیمت کو کنٹرول کرنے کے لیے سٹیٹک یا API جیسے اینڈپوائنٹس کے لیے ڈیٹا سینٹر IPs کا استعمال کریں، اور رہائشی IPs کو محفوظ صفحات، لاگ ان کے بہاؤ، یا اعلیٰ قیمت کے ہدف کے لیے محفوظ رکھیں جہاں پاس کی شرح زیادہ اہم ہے۔ راستے کے لحاظ سے ایک مخلوط نقطہ نظر پر غور کریں۔
ہر ہدف کے لیے کتنی ہم وقتی محفوظ ہے؟
کوئی عالمی نمبر نہیں ہے۔ چھوٹے سے شروع کریں، جیسے ہر راستے کے لیے ایک عدد، اور 429s، تاخیر، اور بلاک کی شرح کو دیکھتے ہوئے بڑھائیں۔ ہر راستے کے لیے مختلف حدیں مقرر کریں اور جب چیلنج کے اشارے بڑھیں تو جلدی پیچھے ہٹیں۔
کیا مجھے ہر سائٹ کے لیے ہیڈلیس براؤزر کی ضرورت ہے؟
نہیں۔ صرف اس وقت استعمال کریں جب کلائنٹ سائیڈ کی رینڈرنگ، JS چیلنجز، یا لاگ ان کے بہاؤ کی ضرورت ہو۔ مشکل مراحل کے لیے ہیڈلیس براؤزر کو ایک ہلکے HTTP کلائنٹ کے ساتھ جوڑیں تاکہ تھروپٹ اور قیمت کو کنٹرول میں رکھا جا سکے۔
دوبارہ کوشش، تبدیل کرنے یا روکنے کا فیصلہ کرنے کے لیے اچھے اشارے کیا ہیں؟
نیٹ ورک کے ٹائم آؤٹ پر چھوٹے بیک آف کے ساتھ دوبارہ کوشش کریں۔ 403/429 یا شناخت شدہ CAPTCHA پر IP/سیشن کو تبدیل کریں۔ جب آپ بار بار نرم بلاک HTML دیکھیں یا جب اس راستے کے لیے غلطی کا بجٹ ختم ہو جائے تو روکیں۔
میں درخواستوں کو تعمیل میں کیسے رکھوں؟
قانونی مشیر اور اندرونی پالیسیوں کے ساتھ ہم آہنگی کریں۔ عوامی اینڈپوائنٹس اور قابل قبول لوڈ پیٹرن کی پیروی کریں، جغرافیائی پابندیوں کا احترام کریں، اور اپنی تنظیم کے اندر استعمال کے بارے میں شفاف رہیں۔ کنٹرول بنائیں جو خطرے کے اشارے یا شکایات کے واقع ہونے پر کاموں کو تھروٹل یا روک دیں۔
اگر رہائشی IPs اب بھی بلاک ہیں تو کیا کریں؟
ہم وقتی کو کم کریں، سیشن کی زندگی کو معتدل طور پر بڑھائیں، ہیڈر کی مستقل مزاجی کو سخت کریں، اور ASN/ISP کی تقسیم کو چیک کریں۔ اس مرحلے کے لیے ایک نئے علاقے یا ہیڈلیس براؤزر پر غور کریں۔ پیمانے پر جانے سے پہلے ایک چھوٹے پائلٹ کے ساتھ تبدیلیوں کی توثیق کریں۔
میں بلاک میں اچانک اضافے کی خرابی کیسے کروں؟
حالیہ دوڑوں کا موازنہ ایک صاف بنیادی لائن سے کریں: IP کی حدود، ہیڈرز، TLS کلائنٹ پروفائل، ہم وقتی، اور ہدف کی سائٹ میں تبدیلیاں۔ ناکام درخواستوں میں ایک عام عنصر تلاش کریں، جیسے ایک مخصوص ASN یا راستہ۔ حالیہ تبدیلیوں کو واپس کریں اور انہیں ایک ایک کر کے دوبارہ متعارف کریں۔
مزید سیکھنے اور گہرائی میں جانے کے لیے کہاں جائیں
- کیا آپ کو ہائی تھروپٹ IPs کے لیے طاقتوں اور تجارتی نقصانات پر ایک تازہ کاری کی ضرورت ہے؟ ہمارے ڈیٹا سینٹر پروکسیز کے رہنما کا جائزہ لیں۔
- محفوظ راستے کی حکمت عملیوں اور سیشن کی منطق کی منصوبہ بندی کر رہے ہیں؟ رہائشی پروکسیز کے لیے تنوع اور چپکنے کے بارے میں سیاق و سباق کے لیے دریافت کریں۔
- کیا آپ صنعت کے لحاظ سے پیٹرن دیکھنا چاہتے ہیں؟ حقیقی دنیا کے پروکسی استعمال کے کیسز کو دیکھیں تاکہ حکمت عملیوں کو اپنے عمودی کے ساتھ نقشہ بنایا جا سکے۔
- کیا آپ گہرائی میں طریقہ کار اور عمل درآمد کی تفصیلات دیکھنا چاہتے ہیں؟ ہمارے مرحلہ وار تکنیکی رہنما پڑھیں۔
اختتام اور اگلے اقدامات
بلاک کو کم کرنا فٹ ہونے کے بارے میں ہے: ہر راستے کے لیے صحیح شناخت، رفتار، اور نقل و حمل۔ اہم تجارتی نقصانات رفتار بمقابلہ پوشیدگی، اور قیمت بمقابلہ پاس کی شرح ہیں۔ ہدف کے لحاظ سے پروفائلز کے ساتھ شروع کریں، واضح میٹرکس مرتب کریں، پھر پروکسیز، سیشنز، اور ہم وقتی کو چھوٹے تجربات میں ترتیب دیں۔ وقت کے ساتھ بلاک کی شرح کو کم کرنے کے لیے، اپنی فیڈبیک لوپ کو تنگ رکھیں اور اپنی تعریفات کو مستحکم رکھیں۔
اگلے اقدامات: ایک ہدف منتخب کریں، ایک کنٹرولڈ A/B بھیجیں، اور ناکامی سے پہلے بلاک کی شرح، CPSR، اور سیشن کی لمبائی کو ٹریک کریں۔ ہر رن میں صرف ایک متغیر کو ایڈجسٹ کریں۔ جب نتائج ایک ہفتے تک برقرار رہیں، تو اگلے راستے پر عمل درآمد کریں۔ مزید گہرائی کے پیٹرن اور عمل درآمد کے نکات کے لیے، ہمارے SquidProxies کے رہنما اور تکنیکی وسائل کا جائزہ لیں۔


