Как пользоваться curl: примеры и разбор команды

Основной синтаксис команды curl

Итак, давайте узнаем, как пользоваться утилитой. Основной синтаксис Curl выглядит следующим образом:

curl [OPTIONS] [URL]

Soft – урок по curl: основы использования и пара полезных трюков (часть первая)

Для чего нужна cURL

  • cURL отлично подходит для имитации действий пользователя в браузере.

Реальный практический пример: вам нужно перезагрузить роутер (модем) для смены IP адреса. Для этого нужно: авторизоваться в роутере, перейти к странице обслуживания и нажать кнопку «Перезагрузка». Если это действие нужно выполнить несколько раз, то процедуру нужно повторить. Согласитесь, делать каждый раз в ручную эту рутину не хочется. cURL позволяет автоматизировать всё это. Буквально несколькими командами cURL можно добиться авторизации и выполнения задания на роутере.

  • cURL удобен для получения данных с веб-сайтов в командной строке.

Ещё один практический пример: мы хотим реализовать показ общей статистики для нескольких сайтов. Если использовать cURL, то это становится вполне тривиальной задачей: с помощью cURL мы проходим аутентификацию на сервисе сбора статистики (если это требуется), затем (опять же командами cURL) получаем необходимые страницы, парсим нужные нам данные; процедура повторяется для всех наших сайтов, затем мы складываем и выводим конечный результат.

Т.е. случаи использования cURL вполне реальные, хотя, в большинстве, cURL нужна программистам, которые используют её для своих программ.

cURL поддерживает множество протоколов и способов авторизации, умеет передавать файлы, правильно работает с кукиз, поддерживает SSL сертификаты, прокси и очень многое другое.

cURL в PHP и командной строке

Мы можем использовать cURL двумя основными способами: в скриптах PHP и в командной строке.

Чтобы включить cURL в PHP на сервере, необходимо в файле php.ini раскомментировать строку

А затем перезагрузить сервер.

На Linux необходимо установить пакет curl.

На Debian, Ubuntu или Linux Mint:

На Fedora, CentOS или RHEL:

Чтобы наглядно было видно разницу в использовании в PHP и в командной строке, будем одни и те же задачи выполнять дважды: сначала в скрипте PHP, а затем в командной строке. Постараемся при этом не запутаться.

Получение данных при помощи cURL
Получение данных при помощи cURL в PHP

Пример на PHP:

Всё очень просто:

$target_url

— адрес сайта, который нас интересует. После адреса сайта можно поставить двоеточие и добавить адрес порта (если порт отличается от стандартного).

curl_init

— инициализирует новый сеанс и возвращает дискриптор, который в нашем примере присваивается переменной

$ch

.

Затем мы выполняем запрос cURL функцией

curl_exec

, которой в качестве параметра передаётся дискриптор.

Всё очень логично, но при выполнении этого скрипта, на нашей странице отобразиться содержимое сайта. А что если мы не хотим отображать содержимое, а хотим записать его в переменную (для последующей обработки или парсинга).

Чуть дополним наш скрипт:

У нас появилась строчка

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

.

curl_setopt

— задаёт опции. Полный список опций можно найти на этой странице:

http://php.net/manual/ru/function.curl-setopt.php
$response_data = curl_exec($ch);

Теперь значение скрипта присваивается переменной $response_data, с которой можно проводить дальнейшие операции. Например, можно вывести её содержимое.

Строчки

служат для отладки, на случай возникновения ошибок.

Получение данных при помощи cURL в командной строке

В командной строке достаточно набрать

где вместо

mi-al.ru

— адрес вашего сайта.

Если нужно скопировать данные в переменную, а не выводить полученный результат на экран, то делаем так:

При этом всё равно выводятся некие данные:

Чтобы они не выводились, добавляем ключ

-s

:

Можно посмотреть, что записалось:

Базовая аутентификация и аутентификация HTTP

Аутентификация, проще говоря, это введение имени пользователя и пароля.

Базовая аутентификация — это аутентификация средствами сервера. Для этого создаются два файла:

.htaccess

и

.htpasswd

Содержимое файла .htaccess примерно такое

Содержимое файла .htpasswd примерно такое:

Т.е. логин и хэш пароля.

При попытке получить доступ к запароленной папке, в браузере отобразиться примерно такое окно:

HTTP аутентификация — это тот случай, когда мы вводим логин и пароль в форму на сайте. Именно такая аутентификация используется при входе в почту, на форумы и т. д.

Базовая аутентификация cURL (PHP)

Есть сайт

http://62.113.208.29/Update_FED_DAYS/

, который требует от нас авторизоваться:

Пробуем наш первоначальный скрипт:

Хотя скрипт и считает, что ошибки нет, но выводимый результат нам совсем не нравится:

Добавляем две строки:

Первой строкой мы задаём тип аутентификации — базовая. Вторая строка содержит имя и пароль через двоеточие (в нашем случае имя и пароль одинаковые — ru-board). Получилось так:

Я не забыл указать тип аутентификации, просто в cURL базовый тип аутентификации является дефолтным.

В командной строке всё получилось так быстро, что от расстройства я написал вот такую программу. Она подключается к сайту и скачивает самое последнее обновление:

Буквально ещё несколькими командами можно добавить:

  • распаковку архива в указанный каталог;
  • запуск обновлений КонсультантПлюс (это обновления для него);
  • можно реализовать проверку — было ли уже скачено последнее доступное обновление или появилось новое;
  • добавить это всё в Cron для ежедневных обновлений.

HTTP аутентификация cURL
HTTP аутентификация cURL в PHP

Нам нужно знать:

Иногда этих данных оказывается недостаточно. Давайте разберёмся.

Адрес, куда нужно отправить данные, можно взять из формы аутентификации. Например:

Мы смотрим на свойство

action

. Т.е. конечной страницей является

login.php

. Нам нужен полный адрес, например такой

http://188.35.8.64:8080/login.php

Здесь же мы находим и метод отправки:

method=”post”

Логин и пароль я тоже знаю: admin и qwerasdfzxcv

Т.е. на сервер из формы передаётся строка

LOGIN_USER=admin&LOGIN_PASSWD=qwerasdfzxcv

методом POST. Теоретически, наш предыдущий скрипт, в которое мы добавили новую строчку, должен работать. Т.е. должна происходить аутентификация.

В скрипте новая строка

curl_setopt($ch, CURLOPT_POSTFIELDS, ‘LOGIN_USER=admin&LOGIN_PASSWD=qwerasdfzxcv’);

Здесь

curl_setopt

— уже знакомая нам функция по установлению опций для cURL,

CURLOPT_POSTFIELDS

— эта имя опции, которую мы устанавливаем.

CURLOPT_POSTFIELDS

содержит все данные, которые передаются методом POST. Ну и сама строчка

LOGIN_USER=admin&LOGIN_PASSWD=qwerasdfzxcv

— это те самые данные, которые мы передаём.

Если внимательно изучить форму, то можно увидеть, что она содержит также и скрытые поля. А ещё данные могут обрабатываться или дополняться JavaScript’ами. Можно заняться изучением всего этого, но я предпочитаю более простой способ.

Я использую Wireshark. Эта программа предназначена для снифинга (перехвата) трафика. И именно в ней очень удобно смотреть, что же именно передаётся на сайт.

Посмотрите это крошечное видео:

Т.е. с адресом, куда передаются данные, я угадал. А вот передаваемая строка оказалась намного сложнее.

Я вписал верный параметр, а также чуть доработал скрипт, чтобы он не просто авторизовался, но и кое-что получал из роутера:

Похожее:  Оплата услуг Интернет-Банка Запсибкомбанка в Лабытнангах

PHP:

<?php
        $target_url = "http://188.35.8.64:8080/login.php";
        $ch = curl_init($target_url);
        curl_setopt($ch, CURLOPT_POSTFIELDS, 'ACTION_POST=LOGIN&FILECODE=&VERIFICATION_CODE=&LOGIN_USER=admin&LOGIN_PASSWD=qwerasdfzxcv&login=Log In &VER_CODE=');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $response_data = curl_exec($ch);
        if (curl_errno($ch) > 0) {
            echo 'Ошибка curl: ' . curl_error($ch);
        } else {
            $target_url2 = "http://188.35.8.64:8080/bsc_wlan.php";
            $ch2 = curl_init($target_url2);
            curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
            $response_data2 = curl_exec($ch2);
            preg_match('|f.ssid.value = "(.*)";|', $response_data2, $results2);
            $results2[0] = str_replace('f.ssid.value = "', '', $results2[0]);
            $results2[0] = str_replace('";', '', $results2[0]);
            echo "Имя wi-fi сети: <b>$results2[0]</b><br />";
            preg_match('|f_wpa.wpapsk1.value(.*)";|', $response_data2, $results3);
            $results3[0] = str_replace('f_wpa.wpapsk1.value', '', $results3[0]);
            $results3[0] = str_replace('="', '', $results3[0]);
            $results3[0] = str_replace('";', '', $results3[0]);
            echo "Пароль wi-fi сети: <b>$results3[0]</b>";
        }
        curl_close($ch);
        ?>

Кстати, если владелец обновит пароль (но не обновит прошивку), то новый пароль всегда можно посмотреть по адресу http://188.35.8.64:8080/model/__show_info.php?REQUIRE_FILE=/var/etc/httpasswd

(Это общеизвестная уязвимость роутеров D-Link DIR-300, D-Link DIR-320, и D-Link DAP-1353).

HTTP аутентификация cURL в командной строке

Полный адрес, а также строку, которую нужно передать, мы уже знаем. Поэтому всё просто:

Думаю, всё и так понятно, т. к. эти сроки мы уже рассмотрели. Если кому-то непонятно — спрашивайте в комментариях.

Примером использования cURL для получения и парсинга данных может стать следующий набор команд:

Сложные случаи авторизации: AJAX, JQuery, JavaScript и т.п.

Данные заголовок правильнее было бы написать так: «Сложные» случаи авторизации. Т.е. слово «сложные» взять в кавычки. Сложными они видятся только на первый взгляд, когда непонятно: куда происходит отправка, какие имена полей, что именно отправляется и т. д.

Но, на самом деле, все они сводятся к методам POST или GET. Чтобы понять, что именно отправляется, можно сохранить страницу с формой себе на диск и на кнопку отправки повесить функцию показа сформированных для отправки данных. Или ещё проще — как я, Wireshark’ом.

Если данные правильные, а аутентификация не происходит, то нужно копать в следующих направлениях:

  • задать верную строку реферера
  • задать «правильную» строку пользовательского агента.

Всё это можно сделать базовыми методами cURL, но я не буду на этом останавливаться. Урок получился и без того большим, а ведь я ещё хотел показать пару трюков с cURL.

Типсы и триксы cURL
cURL и получение кукиз помимо CURLOPT_COOKIEJAR

Думаю, уже стало понятно, что cURL правильно обрабатывает куки — сохраняет их, использует, когда сервер запрашивает, и т. д. Но иногда куки нужно сохранить. Для этого есть опция CURLOPT_COOKIEJAR, но воспользоваться ей можно не всегда. Этому и посвящён наш первый трюк.

Иногда из-за особенностей настройки PHP на сервере, нам недоступны такие опции как CURLOPT_COOKIEJAR (позволяет сохранить полученные куки в файл) и CURLOPT_COOKIEFILE (позволяет использовать куки из файла). Т.к. они говорят, что используя эти опции мы сможем стянуть любой файл с их сервера. Вот решение этой проблемы:

1) Не используем CURLOPT_FOLLOWLOCATION

2) Используем curl_setopt($ch, CURLOPT_HEADER, 1)

3) Собираем кукизы из заголовка header примерно так:

4) Задаём их используя curl_setopt($ch, CURLOPT_COOKIE, $cookies);

Второй совет. Из атакующих мы можем превратиться в жертву. Чтобы не стать жертвой атаки человек-по-середине, делаем так.

Пожалуйста, все, перестаньте устанавливать настройку CURLOPT_SSL_VERIFYPEER на false или 0. Если ваша установка PHP не имеет актуального комплекта корневых сертификатов CA, загрузите один на веб-сайте curl и сохраните его на ваш сервер:

http://curl.haxx.se/docs/caextract.html

Затем задайте путь в вашем файле php.ini file, например, на Windows:

Отключение CURLOPT_SSL_VERIFYPEER позволяет осуществить атаку человек-по-середине (MITM), а это нам не надо!

Ну и последняя на сегодня подсказка. Знаете ли вы, что возможно большое количество асинхронных запросов curl?

Для этого можно использовать

curl_multi_init

. Подробности и пример кода в официальной документации

http://php.net/manual/ru/function.curl-multi-init.php
Что ещё почитать про cURL

О cURL в PHP я бы рекомендовал официальную документацию — написано просто и много примеров.

http://php.net/manual/ru/ref.curl.php

Про cURL в командной строке

или

http://curl.haxx.se/docs/manual.html
Для чтения на русском языке также подготовлена вторая часть урока cURL: “Примеры команд cURL“.

RSERSH
13.03.2022 в 18:41

И всё-же, до меня что-то не доходит, зачем испльзовать именно php? Может дело втом, что я этот язык не знаю))? По этой причине, не совсем всё понимаю. Например: скриншот сделанный при неудачной попытке авторизации, сделан в браузере, но почему ошибка выводится в браузере, а не в консоли или ещё где-то? Я лично пытался всё через терминал сделать, которую хоть как-то знаю в отличие от php, в итоге ничерта не получилось. Может в этом проблема или это можно сделать и средствами терминала линукса, если да, то подскажите как?

Пытаюсьпримитивного бота собратьдля вк, но пока застрял на этом

cd Desktop;

curl -A “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30”

https://vk.com

-o test.txt Не я не прошу за меня всё делать, просто пните в направлении, в котором нужно двигаться.

Проверяем доступность определённого веб сайта

Как узнать, доступен ли определённый веб сайт? cURL поможет ответить на данный вопрос. Данный скрипт можно использовать совместно с планировщиком для мониторинга сайта.

Замените URL в строке 3 на тот, который вам нужен.  Скопируйте код на свою страницу, и станет известно, доступен ли указанный сайт.

Замена cURL для функции file_get_contents()

Функция file_get_contents() очень полезная, но на многих хостингах она отключена. С помощью cURL можно написать функцию, которая будет работать в точности как file_get_contents().

function file_get_contents_curl($url) {$ch = curl_init();

curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Устанавливаем параметр, чтобы curl возвращал данные, вместо того, чтобы выводить их в браузер.curl_setopt($ch, CURLOPT_URL, $url);

$data = curl_exec($ch);curl_close($ch);

return $data;}

Как работает Curl?

Итак, Curl — программа простая, но универсальная. Различные варианты ее использования контролируются параметрами, которые указываются в командной строке при вызове утилиты. Команда схематически выглядит следующим образом:

curl [список опций] [ссылка]

Получается, что если пользователь введет текст без опций, то программа просто отобразит содержимое веб-страницы в виде исходного кода. Например:

curl highload.today

Установка Curl

Работу с Curl поддерживают системы Unix/Linux. В большинстве современных ОС Как пользоваться curl: примеры и разбор командыКак пользоваться curl: примеры и разбор командымногие дистрибутивы Linux, современные версии macOS, Windows 10 утилита установлена по умолчанию.

Загружаем и сохраняем изображения со страницы с помощью cURL

Данная функция может быть очень полезна: задаем ей URL страницы и она сохраняет все изображения с нее на вашем сервере.

Как пользоваться Curl? Примеры

Как уже было сказано выше, без указания дополнительных опций команда Curl отображает содержимое веб-страницы в виде исходного кода в средстве просмотра по умолчанию. Чтобы совершать другие действия, необходимо использовать дополнительные аргументы. Рассмотрим самые распространенные варианты использования Curl.

Конвертируем валюту с помощью cURl и Google

Пересчет валюты достаточно простое дело, но курсы достаточно часто изменяются, поэтому приходится использовать сервисы, подобные Google, для получения текущих значений курса пересчета. Функция currency() получает 3 параметра: исходная валюта, целевая валюта и сумма.

Похожее:  Создаем приложение для ANDROID быстро и просто / Хабр

Получаем информацию о размере файла с помощью cURL

Как определить размер определенного файла, расположенного на другом сервере? Поможет следующая функция. Она получает 3 параметра: URL файла, и (если требуется) имя пользователя и пароль.

Basics of the curl command

Now let’s move onto some basic usages of cURL.

The general structure of the cURL command looks like:

curl [options...] <url>

Let’s try the command without any options:

Curl configuration files

Sometimes, you may want to make all cURL requests use the same options. Passing these options by hand isn’t a feasible solution, so cURL allows you to specify options in a configuration file.

The default configuration file is located in ~/.curlrc in Linux/MacOS and %appdata%_curlrc in Windows. Inside this file, you can specify any options that you need, such as:

# Always use IPv4
-4
# Always show verbose output
-v
# When following a redirect, automatically set the previous URL as referer.
referer = ";auto"
# Wait 60 seconds before timing out.
connect-timeout = 60

Installing curl on debian-based distros

To install cURL on Debian-based distros (Debian, Ubuntu etc.) run:

sudo apt-get update
sudo apt-get install curl

Installing curl on rpm-based distros

To install cURL on RPM-based distros (CentOS, Fedora etc.) run:

sudo yum update
sudo yum install curl

Installing curl on windows

There are multiple ways you can install cURL on Windows. We’ll focus on just one quick and clean way (in my opinion), which I hope works for most using Windows. If you encounter any issues please leave a comment and we’ll get back to you as soon as we can.

Installing curl  on mac os x

Mac OS X should come with cURL, but if it isn’t we recommend installing it via Homebrew, a very popular package manager for Mac.

To install Homebrew open up the terminal and run:

Linux

Most Linux distributions have cURL installed by default. To check whether it is installed on your system or not, type curl in your terminal window and press enter. If it isn’t installed, it will show a “command not found” error. Use the commands below to install it on your system.

For Ubuntu/Debian based systems use:

sudo apt update
sudo apt install curl

For CentOS/RHEL systems, use:

sudo yum install curl

On the other hand, for Fedora systems, you can use the command:

sudo dnf install curl

Objectives

This tutorial will explain the basics of cURLand how to use it to transfer data to or from a server, along with some of it’s most frequently used options.

Post requests

We already mentioned that cURL performs the GET request method by default. For using other request methods need to use the -X or –request flag followed by the request method.

Let’s see an example:

curl -X [method] [more options] [URI]

For using the POST method we’ll use:

curl -X POST [more options] [URI]

Put requests

The PUT request will update or replace the specified content.

Perform the PUT request by using the -X flag:

Resuming downloads

If you cancel some downloads midway, you can resume them by using the -C – option:

Silencing errors

Previously, we have seen that cURL displays a progress bar when you save the output to a file. Unfortunately, the progress bar might not be useful in all circumstances. As an example, if you hide the output with -vo /dev/null, a progress bar appears which is not at all useful.

You can hide all these extra outputs by using the -s header. If we continue with our previous example but hide the progress bar, then the commands would be:

Specify the content type in the header

We can specify the content type using this header.

Let’s send a JSON object with the application/json content type:

Testing protocol support with curl

Due to the wide range of protocols supported by cURL, you can even use it to test protocol support. If you want to check if a site supports a certain version of SSL, you can use the –sslv<version> or –tlsv<version> flags. For example, if you want to check if a site supports TLS v1.2, you can use:

Troubleshooting website issues with “curl timing breakdown”

You may run into situations where a website is very slow for you, and you would like to dig deeper into the issue. You can make cURL display details of the request, such as the time taken for DNS resolution, establishing a connection etc. with the -w option. This is often called as a cURL “timing breakdown”.

Use the -l flag to follow redirects

This is a good time to learn about the redirect option with the curl command:

Windows

For Windows 10 version 1803 and above, cURL now ships by default in the Command Prompt, so you can use it directly from there. For older versions of Windows, the cURL project has Windows binaries. Once you download the ZIP file and extract it, you will find a folder named curl-<version number>-mingw.

Next, you should add cURL’s bin directory to the Windows PATH environment variable, so that Windows can find it when you type curl in the command prompt. For this to work, you need to follow these steps:

  • Open the “Advanced System Properties” dialog by running systempropertiesadvanced from the Windows Run dialog (Windows key R).
  • Click on the “Environment Variables” button.
  • Double-click on “Path” from the “System variables” section, and add the path C:curl-7.62.0-win64-mingwbin. For Windows 10, you can do this with the “New” button on the right. On older versions of Windows, you can type in ;C:curl-7.62.0-win64-mingwbin (notice the semicolon at the beginning) at the end of the “Value” text box.

Once you complete the above steps, you can type curl to check if this is working. If everything went well, you should see the following output:

Другие применения curl

В линуксоподобных системах для поиска информации и файлов, а также других интересных действий, используются регулярные выражения. Утилита Curl также может с ними взаимодействовать, например, в связке с утилитой grep.

Похожее:  Вход учителя в виртуальный кабинет Teams, ГБОУ Школа № 554, Москва

Загрузка файлов

Наверняка первым действием, которое вы решите попробовать при помощи Curl, будет загрузка файла или HTML-страницы. Для этого есть две опции: -O и -o.

Первая создает файл с таким же именем, как и на сервере, и не требует дополнительных атрибутов. Вторая позволяет указать для файла собственное имя. Например, данная команда скачает файл test.rar с ресурса example и сохранит его под именем Highload.rar:

Игнорирование ошибки неправильных или самоподписанных сертификатов

При тестировании веб-приложений или API для команды Curl можно прописать опцию -k, чтобы утилита не выдавала ошибку при обнаружении самоподписанных или неправильных SSL-сертификатов.

Использование прокси

Если есть необходимость в использовании прокси-сервера для загрузки файлов, то на помощь приходит опция -x, внутри которой указываются данные сервера:

Как пользоваться curl?

Мы рассмотрели все, что касается теории работы с утилитой curl, теперь пришло время перейти к практике, и рассмотреть примеры команды curl.

Команда curl

Перед тем как перейти к описанию того как может использоваться команда curl linux, давайте разберем саму утилиту и ее основные опции, которые нам понадобятся. Синтаксис утилиты очень прост:

$ curlопции ссылка

Теперь рассмотрим основные опции:

Это далеко не все параметры curl linux, но здесь перечислено все основное, что вам придется использовать.

Ограничение скорости

Также существует опция для ограничения скорости загрузки до необходимого предела, чтобы не перегружать сеть. Значение указывается в килобайтах в секунду:

Ограничение скорости скачивания

Скачивая или загружая данные с помощью Curl, вы не можете знать, насколько большим будет вывод. Вы можете ограничить скорость скачивания, чтобы убедиться, что Curl не ограничивает пропускную способность канала. 

Команда ниже ограничивает скорость скачивания до 100К:

Отправка put-запроса, содержащего json-файл

Флаг

-d

также поддерживает отправку данных из локальных файлов.

Например, представим, что у нас есть файл data.js, содержащий такие данные:

Отправка авторизованного запроса

Заголовок авторизации используется для включения в запрос данных для авторизации при обращении к RESTful API. Для добавления указанных данных необходимо использовать флаг

-H

. Например, если ваш ключ интерфейса (API key)

my-secret-token

Отправка данных post

Так как в стандартной форме команда Curl, по сути, реализует запрос GET, для того, чтобы отправить конфиденциальные данные Как пользоваться curl: примеры и разбор командыКак пользоваться curl: примеры и разбор командыили когда объем введенной информации очень велик, нужно использовать метод POST, при этом применяется опция -d:

Отправка файлов на другой сервер

Отправка файлов осуществляется методом POST:

Передача и анализ заголовков

Не всегда нам обязательно нужно содержимое страницы. Иногда могут быть интересны только заголовки. Чтобы вывести только их есть опция -I:

Передача и прием cookie

Чтобы проверить, какие файлы cookie Как пользоваться curl: примеры и разбор командыКак пользоваться curl: примеры и разбор командыхранятся на стороне пользователя, чтобы сайты, к примеру, быстрее прогружались загружаются по URL, существует команда -c. C ее помощью cookie сохраняются в файл. Если же вам необходимо отправить файл с cookie на сайт, то используется опция -b.

Подборка php песочниц

Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

Скачивание файлов

Curl позволяет сохранить результат сразу в файл, указав указатель на открытый файл в параметре CURLOPT_FILE.

$file_name = __DIR__ . ‘/file.html’;$file = @fopen($file_name, ‘w’);

Совет: отправка информации в google analytics через api

Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.

Установка на linux

В Ubuntu или Debian для установки Curl нужно в командной строке ввести команду:

# apt-get install curl

Для проверки статуса установки и текущей версии:

# dpkg -l | grep curl

Если вы работаета в RHEL, CentOS или Fedora, то для установки необходимо войти через SSH от имени пользователя root и выполнить команду:

# rpm -qa | grep curl

Для проверки статуса установки и текущей версии:

# rpm -qa | grep curl

Установка Curl в OpenSUSE:

# zypper install curl

Проверка:

# zypper se curl

Установка Curl в ArchLinux:

# pacman -Sy curl

Проверка:

# pacman -Qi curl

Для справки

В разных дистрибутивах в командную строку можно попасть по-разному. К примеру, в Ubuntu используются такие комбинации:

  • Ctrl Alt T — для запуска терминала.
  • Ctrl Alt F1 — для работы через консоль.
  • Ctrl Alt F7 — для работы через графический интерфейс.

Установка на macos

В macOS Curl практически со стопроцентной вероятностью уже предустановлена. Для того, чтобы проверить версию утилиты на своем устройстве, нужно войти в «Терминал» (используйте комбинацию Cmd spacebar для открытия Spotlight, а затем введите Terminal). В командной строке нужно ввести:

curl -V

Установка на windows

В последних версиях Windows 10 и 11 Curl также должен быть предустановлен. Чтобы это проверить, нужно в командной строке («Пуск» -> cmd) ввести следующее:

curl -V

Если же Curl на вашем устройстве отсутствует, то сначала нужно определить разрядность Windows (правая кнопка мыши по «Компьютер» -> «Свойства» -> в строке «Тип системы» будет 32- или 64-разрядная).

Итоги

Итак, Curl — это действительно простая, но мощная и универсальная утилита Linux, Windows и macOS для доступа к интернету без браузера, загрузки исходного кода сайтов, отправки POST-запросов, тестирования API, имитации действий сетевых пользователей сервисов и так далее.

По своей сути она похожа на свободную неинтерактивную консольную программу для загрузки файлов по сети wget, но со своими особенностями, о которых мы сегодня поговорили. Curl поддерживает множество протоколов, а огромный набор опций позволяет придумать для нее сотни вариантов использования.

Чтобы получить краткую помощь, прямо в командной строке можно ввести команду curl –help либо curl –manual. А чтобы закрепить полученные знания, можно посмотреть короткое видео о Curl:

Заключение

Резюмируя, вот опции curl, которые я нахожу самыми полезными:

Curl — полезный инструмент взаимодействия с API посредством командной строки, независимо от того, сторонний это API или API, который вы разрабатываете. Для быстрого тестирования curl подходит лучше, чем Axios в Node.js или настройка запроса в Postman, если вы знакомы с их синтаксисом.

Благодарю за потраченное время. Надеюсь, оно было потрачено не зря.

Conclusion

In this article, we have covered the most common uses of the cURL command. Of course, this article only scratches the surface and cURL can do a whole lot of other things. You can type man curl in your terminal or just visit this page to see the man page which lists all the options.

Ezoicreport this ad

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 4,00 из 5)
Загрузка...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *