Hi all member, hôm nay tớ sẽ hướng dẫn cho các mem 1 thư viện khá là hay và hữu ích đó là cURL, ngoài cURL ra còn có một số thư viện khác như GD,PDO, mPDF, .. từ từ ta tìm hiểu sau. Nhắc đến cURL thì nhiều mem sẽ nghĩ ngay đến công dụng đầu tiên là làm tool leech
, nhưng chỉ dừng ở đó thì đơn giản quá
.
Ok ta sẽ tìm hiểu từ từ những cái cơ bản nhất => cái nâng cao hơn 1 chút chứ thực ra mình vẫn hiểu k hết được thằng này
.
cấu trúc để sử dụng cURL như sau
<? = curl_init (); #khởi tạo một phiên làm việc với curlcurl_setopt(,option,value); # các option(tùy chọn)curl_exec); # thực hiện phiên làm việc<; curl_setopt,CURLOPT_URL,'http:; #thiết lập địa chỉ đích cho phiên làm việccurl_setopt(,CURLOPT_RETURNTRANSFER,1); #thiết lập này sẽ báo cho cURL biết rằng sẽ nhận dữ liệu trả về = curl_exec);#thực hiên phiên làm việc và gán dữ liệu nhận được vào biến ;# xuất ra giá trị của biến < thì thằng này dài dòng quá
, uhm công nhận đó, nếu với việc trên với file_get_contents)<;
nhưng cái gì nó cũng có cái hay của nó các bạn ạ, ngắn thế kia chắc gì đã tốt mà dài thế kia chắc gì đã hay, cũng tùy cơ ứng biến thôi, nếu những ứng dụng đơn giản không yêu cầu quá phức tạp bạn hãy dùng file_get_contents)< với vài dòng code đơn giản khi đó ta phải sử dụng cURL thay thế, mình cũng có 1 demo chặn cả file_get_contents0; text-decoration: none; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; padding: 0px 3px; margin: 0px -3px; font-family: Arial, ArialBlack, ArialNarrow, BookAntiqua, CenturyGothic, ComicSansMS, CourierNew, Fixedsys, FranklinGothicMedium, Garamond, Georgia, Impact, LucidaConsole, LucidaSansUnicode, MicrosoftSansSerif, PalatinoLinotype, System, Tahoma, TimesNewRoman, TrebuchetMS, Verdana, sans-serif; line-height: 20.53333282470703px; background-color: rgb(252, 252, 255);">http://teenclub.info/antileech/victim.php, cURL vẫn vượt được nhé chỉ là mình set thêm vài thông số để chặn các new mem thôi chứ pro vẫn vượt như thường
, tản mạn đủ rồi mình đi vào vấn đề chính.
bay giờ mình sẽ phân tích qua các option cơ bản khi dùng cURL
curl_setopt(, CURLOPT_HTTPHEADER, 'header');# gửi header kèm theo phiên làm việccurl_setopt(, CURLOPT_HEADER, 1);# nhận header trả về khi thực hiện phiên cURLcurl_setopt(, CURLOPT_RETURNTRANSFER, 1);#nhận dữ liệu trả về nếu để là 1 , không nhận để là 0curl_setopt(, CURLOPT_BINARYTRANSFER, 1);# nhận dữ liệu trả về dưới dạng nhị phâncurl_setopt(, CURLOPT_COOKIEJAR, 'file cookie');# thiết lập tên file sẽ lưu cooki vào sau mỗi phiên curlcurl_setopt(, CURLOPT_COOKIEFILE, 'file cookie');# thiết lập file để lấy cookie cho một phiên curlcurl_setopt(, cURLOPT_REFERER, 'link');#thiết lập link referercurl_setopt(, CURLOPT_USERAGENT, 'useragent');#thiết lập thông tin trình duyệtcurl_setopt(, CURLOPT_POST,1);# thiết lập thông báo rằng sẽ gửi dữ liệu để là 1, không gửi để 0curl_setopt(, CURLOPT_POSTFIELDS,'data');#thiết lập dữ liệu sẽ gửi
trên đây là 1 số option hay dùng nhé, tiếp theo ta đi vào các ví dụ có mức độ nâng cao dần
Ví dụ 1: dùng cURL get nội dung 1 file
<? = curl_init'http:;#khai báo thế này ta đã set luôn url cho nó khỏi cần curl_setopt(,CURLOPT_URL,'link');curl_setopt(, CURLOPT_RETURNTRANSFER, 1);#nhận dữ liệu trả về nếu để là 1curl_setopt(, CURLOPT_BINARYTRANSFER, 1);# nhận dữ liệu trả về dưới dạng nhị phân = curl_exec(); = fopen('newfile.zip',"wb"); // mở 1 file tên là newfile.zip với quyền "wb"fwrite(,);//ghi nội dung biến vào filefclose);;?>
vậy tại sao ta vẫn dùng cURL bởi vì nếu cái sever kia có 1 cơ chế bỏ vệ file nào đó thì copy0; background-color: rgb(252, 252, 255); color: rgb(20, 20, 20); font-family: Arial, ArialBlack, ArialNarrow, BookAntiqua, CenturyGothic, ComicSansMS, CourierNew, Fixedsys, FranklinGothicMedium, Garamond, Georgia, Impact, LucidaConsole, LucidaSansUnicode, MicrosoftSansSerif, PalatinoLinotype, System, Tahoma, TimesNewRoman, TrebuchetMS, Verdana, sans-serif; line-height: 20.53333282470703px; background-position: -20px 0px; background-repeat: no-repeat no-repeat;">
ví dụ 2: login vào 1 trang web
để đơn giản mình đã làm 1 trang để các bạn test, link: http://teenclub.info/log.php với user/pass = princenuce/123456
khi viewsource mã nguồn của nó mình có được form html của nó như sau
<form method="post"> username:<br><input name="username"><br> password:<br><input name="password"><br> <input type="submit"></form>
bạn hãy để ý dòng name="tên trường", đó chính là 2 thông số sẽ được gửi đi khi ta nhấn submit, 2 cái ấy là username và password đó ạ
<? = curl_init"http:;curl_setopt(, CURLOPT_POST,1);#thiết lập gửi dữ liệucurl_setopt(, CURLOPT_POSTFIELDS,array('username'=>'princenuce', 'password'=>'123456'));#thiết lập dữ liệu gửicurl_exec();curl_close();
chạy thử coi nào.
thôi mỏi tay quá rồi hôm sau nói tiếp 
p/s: bạn nào có thắc mắc gì về bài này pm tại đây mình giải đáp, không pm kiểu bạn ơi giúp mình leech trang này, leech trang nọ nhé, vướng bận chỗ nào thì hỏi đúng chỗ đó,bạn phải chỉ đúng thì mình mới gãi cho bạn sướng được