netcat

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
netcat (NetCat)
Netcat.png
Тип мережева утиліта (TCP, UDP)
Розробник Hobbit
Стабільний випуск 0.7.1 (11 січня 2004)
Платформа Microsoft 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.

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

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