آموزش مقدماتی جادوگری با curl

آموزش مقدماتی جادوگری با curl

خیلی ساده curl که مخفف client URL هست یک ابزار برای ارتباط با سرور، فرستادن و گرفتن اطلاعات از سرور، دانلود فایل و … است. و همه این اتفاق ها توی ترمینال میفته. خیلی ها postman رو برای تست کردن api ترجیح میدن ولی curl هم گزینه دیگریست.curl از این پروتکل ها پشتیبانی میکنه:DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET and TFTPاگه از لینوکس یا مک استفاده میکنید رو دارید. اگر هم از ویندوز استفاده میکنید برید به این ادرس و نصبش کنید:https://curl.haxx.se/download.htmlبرای اینکه بفهمید نصب شده کافیه دستور زیر رو توی ترمینال یا command line یا power shell یا هرچی که اسمش هست وارد کنید. اگه یه سری نوشته اومد یعنی همه چی آرومهcurl –helpساده ترین شکل استفاده از curl اینه که محتوای (فایل html) یک سایت رو بگیریمcurl https://google.comآدرسی که میخواهید بهش ریکوئست بفرستید رو میتونید صراحتا با s- مشخص کنید:curl -s https://google.comمیتونیم بهش بگیم علاوه بر فایلhtml هدر های response رو هم نشون بده:curl -i https://google.comاگر فقط هدر ها رو لازم داشته باشیم با جای i از ( i بزرگ )استفاده کنیمcurl -I https://google.comحالا اگر بخوایم کاری غیر از گرفتن(GET) اطلاعات بکنیم چی؟ curl این امکان رو به ما میده که از متد های مختلف http استفاده بکنیم.فرض کنید روی localhost یه برنامه در حال اجرا است که اطلاعات یک فرم رو دریافت میکنه. میخوایم submit شدن یک فرم رو شبیه سازی کنیم:curl -d &quotfirst_name=arman&last_name=zanjani&quot http://localhost:8000وقتی از d- (مخفف data) استفاده میکنیم متد ریکوئست به طور پیشفرض POST در نظر گرفته میشه. ولی میتونیم دقیق تر باشیم و مستقیم بگیم که میخوایم مثلا PUT باشه:curl -X PUT -d &quotfirst_name=arman&last_name=zanjani&quot https://localhost:8000دقت کنید که X بزرگ استفاده کردم. یا حتی DELETEcurl -X DELETE -d &quotfirst_name=arman&last_name=zanjani&quot https://localhost:8000اینجا دیتا رو به صورت first_name=arman&last_name=zanjani فرستادیم. میتونیم دیتا رو به شکل json هم ارسال کنیم:curl -d ‘{&quotfirst_name&quot:&quotarman&quot,&quotlast_name&quot:&quotzanjani&quot}’ http://localhost:8000/فرض کنید اگر به localhost:8000/dowload یه ریکوئست بفرستیم بهمون یک عکس برمیگردونه. با اجرا این دستور :curl http://localhost:8000/dowloadیک سری حروف بی معنی میگیریم چون در واقع response ما یک عکس هست که به صورت باینری ذخیره شده. کاری که میتونیم بکنیم اینه که اونها رو تو یه فایل ذخیره کنیم. اینطوری میتونیم عکس رو ببینیم:curl -o img.png localhost://8000/dowloadحالا اگر به جایی که این دستور رو اجرا کردید نگاه کنید میبینید که یه فایل به اسم img.png ساخته شده. اصلا هر response رو میشه تو یه فایل ذخیره کرد:curl -o google.html https://google.com میتونیم به جای o از O استفاده کنیم. با این کار لازم نیست اسم فایل رو بگیم و خودش یه اسمی انتخاب میکنه‌. من ترجیه میدم اسم فایل رو خودم انتخاب کنم ولی اگر نمیدونید چه نوع فایلی قراره دریافت کنید به نظرم O انتخاب بهتریه.یکی از باحال ترین چیز هایی که در مورد curl پیدا کردم اینه که میتونید مدت زمانی که دریافت response طول میکشه رو ببینید:curl -w &quot%{time_total}n&quot -o /dev/null -s www.example.comبه طور کلی کاری که w- میکنه اینه که یک فرمت string میگیره و این فرمت رو با اطلاعاتی که در response وجود داره پر میکنه.هر کدوم از flag هایی که دیدید مثل i- یه معادل داره که ادیتور ویرگول دست من رو بست و نگذاشت موقع معرفی اون رو بنویسم.–data => -d
–include => -i
–head => -I (i بزرگ )
–write-out => -w
–request => -X (x بزرگ )

Author: admin

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *