مثالهایی کاربردی از دستور cURL
پنجشنبه, ۱۴ ارديبهشت ۱۳۹۱، ۰۸:۴۰ ب.ظ
cURL یک بسته نرم افزاری متشکل از ابزار خط فرمان و یک کتابخانه برای انتقال داده ها با استفاده از قواعد URL می باشد.
cURL پروتکل های مختلفی همانند DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet و TFTPرا پشتیبانی میکند.
در این مقاله 15 مثال کاربردی با استفاده از cURL بیان میشود.
1- دانلود تنها یک فایل
دستور زیر محتوای URL را دانلود کرده و آنرا در STDOUT شما نمایش میدهد(یعنی همان ترمینال شما).
ما میتونیم نتیجه دستور cURL رو با استفاده از گزینه های –o یا –O در یک فایل ذخیره کنیم.
-o : o کوچیک نتیجه را در فایلی با نام قید شده و دلخواه ذخیره خواهد کرد.
-O : در این گزینه نام فایل موجود در URL برای ذخیره نتیجه استفاده خواهد شد.
وقتی که از curl –O استفاده میکنید محتوا با نام gettext.html برای روی کامپیوترتان ذخیره خواهد شد.
شبیه به cURL شما میتوانید از wget برای دانلود فایلها استفاده کنید،مثالهایی از wget
3-دانلود چندین فایل در یک زمان
ما میتونیم چندین فایل رو توسط URL های معین در خط فرمان دانلود کنیم:
به طور پیشفرض cURL از HTTP Location Headers که به عنوان Redirect(تغییر مسیر)نیز نامیده میشود،پیروی نمیکند.وقتی وب پیج درخواست شده به یک مکان دیگر منتقل یا همان ریدایرکت شد،سپس یک HTTP Location header به عنوان پاسخ فرستاده خواهد شد.
برای مثال:وقتی بعضی ها از هند گوگل.کام را در مرورگرشون تایپ میکنند،به صورت اتوماتیک به صفحه google.co.in ریدایرکت میشن،این کار بر اساس HTTP Location header انجام میشود که در زیر نشان داده میشود:
ما میتوانیم از curl بخواهیم از ریدایرکشن یا همان تغییر مسیر با استفاده از گزینه –L تبعیت کند ،حالا cURL سورس کد http://www.google.co.in/ رو دانلود خواهد کرد.
با استفاده از curl –C میتوانید دانلودی که قبلا به هر دلیلی متوقف شده را ادامه بدهید.این کار زمانی که شما یک فایل بزرگ دانلود میکنید مفید خواهد بود.
اگر ما بگوییم ‘-C-’ سپس curl از جایی که تشخیص دهد شروع به از سرگیری دانلود میکند.ما میتونیم یک آفست هم بدیم ‘-C ’. آفست دادن از چک کردن سورس فایل از ابتدا صرف نظر خواهد کرد.
شروع یک دانلود بزرگ با استفاده از curl ، و فشردن ctrl+c برای متوقف کردن مابین دانلود:
در بالا دانلود در 20.1 درصد متوقف شده است.با استفاده از ‘curl –C-’ میتونیم دانلود رو از جایی که قبلا متوقف کردیم ادامه دهیم.حال دانلود از 20.1 درصد ادامه می یابد.
میتوانید سرعت دانلودی که داده ها با آن انتقال میابند رو توسط گزینه –limit-rate محدود کنید.حتی میتونیم بالاترین سرعت دانلود رو به عنوان آرگومان مشخص کنیم.
میتونید یک پراجرس متریک برای دستور بالاست را در زیر مشاهده کنید،سرعت در حال حاظر نزدیک به 1000 بایت در ثانیه است.
ما میتوانیم فایلهایی که بعد زمان مخصوص تغییر یافته اند را با استفاده از گزینه –z در cURL دانلود کنیم.این گزینه برای هر دوی FTP و HTTP کار میکند.
لطفا برای دیدن سینتکس پشتیبانی شده برای بیان تاریخ به man curl_getdate رجوع کنید .
8-قبول HTTP Authentication در cURL
بعضی اوقات،وبسایتها یک یوزر و پسورد برا دیدن محتوا درخواست میکنند،با کمک گزینه –u میتونیم استوارنامه(چه ترجمه و معادل مزخرفی)یا همون credential اونا رو قبول یا همان Pass کنیم(شب آرام و بی صدا،در تشویش کوچه ها، سرگردان است،با رویای پنجره ،با یک سینه خاطره ،بی سامان است ;-) )
9-دانلود سایت با استفاده از FTP سرور
cURL همچنین میتونه از FTP سرورها دانلود کنه،اگر مسیر FTP دریافت شده یک دایرکتوری باشد،به صورت پیشفرض فایلها رو تحت پوشه مشخص شده لیست خواهد کرد.
6 مورد هم موند به مرور میزارم رو سایت :-p
منبع:
http://www.thegeekstuff.com/
cURL پروتکل های مختلفی همانند DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet و TFTPرا پشتیبانی میکند.
در این مقاله 15 مثال کاربردی با استفاده از cURL بیان میشود.
1- دانلود تنها یک فایل
دستور زیر محتوای URL را دانلود کرده و آنرا در STDOUT شما نمایش میدهد(یعنی همان ترمینال شما).
$ curl http://www.centos.orgدر زیر اطلاعات اضافی دانلود نشان داده خواهد شد.
$ curl http://www.centos.org > centos-org.html2-ذخیره خروجی cURL در یک فایل
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 27329 0 27329 0 0 104k 0 --:--:-- --:--:-- --:--:-- 167k
ما میتونیم نتیجه دستور cURL رو با استفاده از گزینه های –o یا –O در یک فایل ذخیره کنیم.
-o : o کوچیک نتیجه را در فایلی با نام قید شده و دلخواه ذخیره خواهد کرد.
-O : در این گزینه نام فایل موجود در URL برای ذخیره نتیجه استفاده خواهد شد.
$ curl -o mygettext.html http://www.gnu.org/software/gettext/manual/gettext.htmlحال صفحه gettext.html با نام mygettext.html ذخیره خواهد شد.
وقتی که از curl –O استفاده میکنید محتوا با نام gettext.html برای روی کامپیوترتان ذخیره خواهد شد.
شبیه به cURL شما میتوانید از wget برای دانلود فایلها استفاده کنید،مثالهایی از wget
3-دانلود چندین فایل در یک زمان
ما میتونیم چندین فایل رو توسط URL های معین در خط فرمان دانلود کنیم:
$ curl -O URL1 -O URL2دستور زیر هر دو فایل index.html و gettext.html دانلود و با نام های جداگانه در دایرکتوری جاری ذخیره خواهد کرد.
$ curl -O http://www.gnu.org/software/gettext/manual/html_node/index.html -O http://www.gnu.org/software/gettext/manual/gettext.html4-پیروی از HTTP Location Headers با گزینه –L
به طور پیشفرض cURL از HTTP Location Headers که به عنوان Redirect(تغییر مسیر)نیز نامیده میشود،پیروی نمیکند.وقتی وب پیج درخواست شده به یک مکان دیگر منتقل یا همان ریدایرکت شد،سپس یک HTTP Location header به عنوان پاسخ فرستاده خواهد شد.
برای مثال:وقتی بعضی ها از هند گوگل.کام را در مرورگرشون تایپ میکنند،به صورت اتوماتیک به صفحه google.co.in ریدایرکت میشن،این کار بر اساس HTTP Location header انجام میشود که در زیر نشان داده میشود:
$ curl http://www.google.comدر بالا خروجی میگوید که درخواست داکیومنت به http://www.google.co.in/ منتقل شده است.
302 Moved302 Moved
The document has moved
here
ما میتوانیم از curl بخواهیم از ریدایرکشن یا همان تغییر مسیر با استفاده از گزینه –L تبعیت کند ،حالا cURL سورس کد http://www.google.co.in/ رو دانلود خواهد کرد.
$ curl -L http://www.google.com5-از سر گیری/ادامه دانلود قبلی
با استفاده از curl –C میتوانید دانلودی که قبلا به هر دلیلی متوقف شده را ادامه بدهید.این کار زمانی که شما یک فایل بزرگ دانلود میکنید مفید خواهد بود.
اگر ما بگوییم ‘-C-’ سپس curl از جایی که تشخیص دهد شروع به از سرگیری دانلود میکند.ما میتونیم یک آفست هم بدیم ‘-C ’. آفست دادن از چک کردن سورس فایل از ابتدا صرف نظر خواهد کرد.
شروع یک دانلود بزرگ با استفاده از curl ، و فشردن ctrl+c برای متوقف کردن مابین دانلود:
$ curl -O http://www.gnu.org/software/gettext/manual/gettext.htmlنکته:## برای نمایش پروسه پیشرفت استفاده شده است به جای یک پروسه پیشرفت متریک.
############## 20.1%
در بالا دانلود در 20.1 درصد متوقف شده است.با استفاده از ‘curl –C-’ میتونیم دانلود رو از جایی که قبلا متوقف کردیم ادامه دهیم.حال دانلود از 20.1 درصد ادامه می یابد.
curl -C - -O http://www.gnu.org/software/gettext/manual/gettext.html6-محدود کردن سرعت دانلود
############### 21.1%
میتوانید سرعت دانلودی که داده ها با آن انتقال میابند رو توسط گزینه –limit-rate محدود کنید.حتی میتونیم بالاترین سرعت دانلود رو به عنوان آرگومان مشخص کنیم.
$ curl --limit-rate 1000B -O http://www.gnu.org/software/gettext/manual/gettext.htmlدر دستور بالا سرعت دانلود به 1000 بایت در ثانیه محدود شد،cURL ممکنه بالاترین سرعت دانلود رو برای مدت کوتاهی از زمان استفاده کند،اما به صورت میانگین حول حوش 1000 بایت در ثانیه خواهد بود.
میتونید یک پراجرس متریک برای دستور بالاست را در زیر مشاهده کنید،سرعت در حال حاظر نزدیک به 1000 بایت در ثانیه است.
% Total % Received % Xferd Average Speed Time Time Time Current7-دانلود یک فایل تنها در صورتیکه قبل وبعد زمان معلوم تغییر یافته است
Dload Upload Total Spent Left Speed
1 1215k 1 13601 0 0 957 0 0:21:40 0:00:14 0:21:26 999
1 1215k 1 14601 0 0 960 0 0:21:36 0:00:15 0:21:21 999
1 1215k 1 15601 0 0 962 0 0:21:34 0:00:16 0:21:18 999
ما میتوانیم فایلهایی که بعد زمان مخصوص تغییر یافته اند را با استفاده از گزینه –z در cURL دانلود کنیم.این گزینه برای هر دوی FTP و HTTP کار میکند.
$ curl -z 21-Dec-11 http://www.example.com/yy.htmlدستور فوق yy.html را دانلود میکند تنها اگر بعد از تاریخ و زمان داده شده،تغییر یافته باشد اگر هیچ تغییری نسبت به تاریخ داده نکرده باشد دانلود نمیشود.
لطفا برای دیدن سینتکس پشتیبانی شده برای بیان تاریخ به man curl_getdate رجوع کنید .
8-قبول HTTP Authentication در cURL
بعضی اوقات،وبسایتها یک یوزر و پسورد برا دیدن محتوا درخواست میکنند،با کمک گزینه –u میتونیم استوارنامه(چه ترجمه و معادل مزخرفی)یا همون credential اونا رو قبول یا همان Pass کنیم(شب آرام و بی صدا،در تشویش کوچه ها، سرگردان است،با رویای پنجره ،با یک سینه خاطره ،بی سامان است ;-) )
$ curl -u username:password URLنکته:به طور پیشفرض cURL از HTTP Authentication ابتدایی استفاده میکند،میتونیم با استفاده از متد –ntlm یا –digest برای تاییدیه های دیگر استفاده کنیم.
9-دانلود سایت با استفاده از FTP سرور
cURL همچنین میتونه از FTP سرورها دانلود کنه،اگر مسیر FTP دریافت شده یک دایرکتوری باشد،به صورت پیشفرض فایلها رو تحت پوشه مشخص شده لیست خواهد کرد.
$ curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/xss.phpدستور فوق فایل xss.php را از اف تی پی سرور دانلود و در دایرکتوری لوکال ذخیره خواهد کرد.
$ curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/در اینجا ،URL داده شده به یک دایرکتوری رجوع میکند،از این رو curl تمامی فایلها و دایرکتوری ها رو تحت URL داده شده لیست میکند.
6 مورد هم موند به مرور میزارم رو سایت :-p
منبع:
http://www.thegeekstuff.com/
۹۱/۰۲/۱۴
سی یو ار ال ابزار خوبی که امکان می ده در برنامه هایی خاص مدیریت هایی ویژه ایی ایجاد کنیم.
مرسی.