netcat

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
netcat (NetCat)
Тип мережева утиліта (TCP, UDP)
Розробник Hobbit
Стабільний випуск 0.7.1 (11 січня 2004)
Платформа Windows
Операційна система UNIX
Мова програмування C
Ліцензія GPL
Вебсайт netcat.sourceforge.net

netcat (англ. net мережа + cat) — утиліта Unix, що дозволяє встановити з'єднання TCP та UDP, отримувати та передавати звідти дані. Незважаючи на простоту та користь, ця утиліта не включена до жодного стандарту.

Використання[ред. | ред. код]

Зазвичай netcat викликається так:

nc host port

Це призводить до створення TCP-з'єднання зі вказаними реквізитами та переключення стандартного вводу на мережевий вивід і навпаки. Функціональність програми нагадує команду cat, що й зумовило вибір назви. При неможливості з'єднання програма виводить помилку на stderr.

Утиліта розпізнає такі параметри:

 -h Довідка; нічого не робиться
 -v Детальний вивід даних (англ. verbose)
 -o файл_виходу Записує дамп даних у файл
 -i число Затримка між даними, що надсилаються (у секундах)
 -t Сумісність із Telnet
 -z Не надсилати дані (сканування портів)
 -u Підключатись за допомогою UDP (замість TCP)
 -l Пасивний режим (прослуховування порту)
 -p число Локальний номер порту (для -l)
 -s хост Використовувати задану локальну («свою») IP-адресу
 -n Вимкнути DNS та пошук номерів портів у /etc/services
 -w число Задати тайм-аут (у секундах)
 -q число Задати час очікування після EOF на вході (у секундах)
 -e виконуваний_файл ! Запустити вказану програму для обміну даними з мережею (замість стандартних потоків)
 -с команда ! Теж саме, у вигляді команди для /bin/sh

! — потрібна спеціальна збірка (оскільки створює мережеву уразливість), у бінарних файлах, що зазвичай постачаються, відсутня.

Застосування[ред. | ред. код]

  • Тестування і ручна робота з мережевими протоколами;
  • Перевірка доступності портів;
  • Мережевий інтерфейс для оболонки UNIX (втім, деякі версії bash можуть підключатись за допомогою TCP та UDP самостійно);
  • (З параметром -l) створення простих серверів, зазвичай тестових;
  • (Сумісно з inetd) перенаправлення портів.

Приклади[ред. | ред. код]

Відображення тестової HTML-сторінки клієнту зі звичайним браузером однією командою (порт 8080):

(echo -e "HTTP/1.1 200 OK\nContent-Type: text/html\n\n Hello World";) | nc -vv -l -p 8080

Передавання файлу клієнтові зі звичайним браузером (порт 8080):

(echo -e "HTTP/1.1 200\nContent-Disposition: attachment; filename=ім'я, що побачить клієнт\nContent-Type: application/octet-stream\nConnection: close\n"; cat ім'я файлу на диску ) | nc -vv -l -p 8080

Інші імена[ред. | ред. код]

nc, netcat, ncat, pnetcat.

Див. також[ред. | ред. код]

Посилання[ред. | ред. код]