curl là công cụ dòng lệnh dùng truyền dữ liệu qua cú pháp URL, hỗ trợ DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet và TFTP…
curl hoạt động đầy đủ chức năng trên RPi
Sau đây là thí dụ dùng curl truy cập fshare.vn
1. Đăng nhập fshare
Mở trang https://fshare.vn/login.php. Để thấy được các mã lệnh dùng đăng nhập Fshare đàng sau giao diện web, bấm chuột phải vào ô Email và chọn Inspect Element, ta sẽ nhìn thấy phần mã liên quan đến ô Email.
Dò lên trên tìm phần tử form, bấm chuột phải lên dòng form, chọn Copy Outer HTML, sau đó dán vào một trình soạn thảo có chức năng tìm kiếm như Notepad++. Tìm từ khóa input, là các phần tử có nhiệm vụ giao tiếp với người dùng.
Ta được các phần tử sau đây
<input class="field wf_275 " id="login_id" tabindex="1" name="login_useremail" value="" type="text"> <input class="field wf_275 " tabindex="2" name="login_password" value="" onfocus="this.value = ''" type="password"> <input class="field wf_275 " name="url_refe" value="/index.php" type="hidden"> <input name="auto_login" value="1" class="f_left m_l_45px" type="checkbox"> <input class="bt white" value="Đăng nhập" type="submit">
Ta xây dựng dòng lệnh curl như sau, giả sử tài khoản Fshare là me@mydomain, mật khẩu khongco
Input thứ nhất là ô Email, input thứ hai là ô mật khẩu có value trống chờ ta ghi vào. Các input khác có sẵn value thì chỉ việc chép lại. Input cuối cùng là nút bấm Đăng nhập thì có thể không ghi. Địa chỉ trang web cần giao tiếp ghi trong phần action của phần tử form (login.php)
curl -k -c cookie.txt -e http://www.fshare.vn -d "login_useremail=me@mydomain&login_password=khongco&url_refe=http://www.fshare.vn/index.php&auto_login=1" https://www.fshare.vn/login.php
Vì chúng ta cần cookie có được khi đăng nhập nên cần tham số -c cookie.txt Ngoài ra, một số trang đăng nhập thường kiểm tra dữ liệu đăng nhập có từ đâu, nên chúng ta thêm tham số -e http://www.fshare.vn. Thêm tham số -k vì dùng giao thức SSL https
Chạy dòng lệnh curl, ta nhận được kết quả là
<html> <head><title>301 Moved Permanently</title></head> <body bgcolor="white"> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx</center> </body> </html>
Fshare sẽ chuyển trang sau khi nhận dữ liệu đăng nhập, chúng ta thêm tham số -L để curl lấy dữ liệu từ trang chuyển tiếp, -b cookie.txt để trang chuyển tiếp dùng cookie có được từ trang login.php. Ngoài ra dùng tham số -o fshare.html để ghi dữ liệu fshare trả về thành file fshare.html.
Chạy dòng lệnh đã sửa đổi như sau
curl -kL -c cookie.txt -b cookie.txt -e http://www.fshare.vn/index.php -d "login_useremail=me@mydomain&login_password=khongco&url_refe=http://www.fshare.vn/index.php&auto_login=1" https://www.fshare.vn/login.php -o fshare.html
Mở file fshare.html để xem fshare báo đăng nhập thành công hay không, mặt khác nếu thành công fshare_userid trong file cookie.txt có giá trị khác -1
2. Lấy link VIP
Sau khi đăng nhập thành công, chúng ta có file cookie.txt chứa dữ liệu xác nhận user của Fshare. Chúng ta dùng file này để lấy link VIP. Giả sử link Fshare là http://www.fshare.vn/file/YMKZ75GLUA/, dòng lệnh curl như sau
curl -i -b cookie.txt -e http://www.fshare.vn/index.php http://www.fshare.vn/file/YMKZ75GLUA/
Tham số -b cookie.txt để sử dụng file cookie.txt, tham số -i để xem thêm header được Fshare trả về. Kết quả có được là
HTTP/1.1 302 Moved Temporarily
Server: fshare-nginx
Date: Wed, 15 Oct 2014 12:57:43 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/5.4.28
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Location: http://download-a493.fshare.vn/vip/tDTrn8adgd432gaBAzy4Zfwt/[HotfileHD].24.S04E06.Day.4_.12_00.P.M..-.1_00.P.M..1080p.WEB-DL.DD5.1.H.264.mkv
Ta nhận được mã 302, nghĩa là trang sẽ được chuyển về địa chỉ ở dòng location, đó là link VIP. Nếu chúng ta cho curl theo trang này thì dữ liệu film sẽ được tải về.