Как использовать hping изначально или с fork в C?
Искал через Google много об этом вопросе, но я не могу найти решение для этого. Я пытаюсь реализовать MPI порт сканера с использованием библиотеки gnu c hping. Единственная проблема в том, что домашняя страница hping недоступна, и использование только для оболочки. Я хочу использовать hping, чтобы проверить, открыт ли порт или закрыт (трехстороннее успешное рукопожатие по протоколу tcp или нет).
Есть ли примеры для этого?
1 ответ
Решение
Вы можете выполнить hping и проанализировать его вывод. Алгоритм прост:
- Используйте pipe() для создания однонаправленной трубы
- Используйте fork() для создания другого процесса
- В дочернем процессе:
- Используйте dup2() для замены stdout выходным концом канала. Не забудьте закрыть входной конец трубы.
- Используйте execlp() для выполнения hping
- В родительском процессе:
- выход hping будет доступен во входном конце канала. Не забудьте закрыть выходной конец трубы.