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.
- GNU Netcat [Архівовано 16 грудня 2008 у Wayback Machine.] — офіційний сайт проекту (англ.)
- Netcat для Windows [Архівовано 24 лютого 2015 у Wayback Machine.]