Как использовать hping изначально или с fork в C?

Искал через Google много об этом вопросе, но я не могу найти решение для этого. Я пытаюсь реализовать MPI порт сканера с использованием библиотеки gnu c hping. Единственная проблема в том, что домашняя страница hping недоступна, и использование только для оболочки. Я хочу использовать hping, чтобы проверить, открыт ли порт или закрыт (трехстороннее успешное рукопожатие по протоколу tcp или нет).

Есть ли примеры для этого?

1 ответ

Решение

Вы можете выполнить hping и проанализировать его вывод. Алгоритм прост:

  1. Используйте pipe() для создания однонаправленной трубы
  2. Используйте fork() для создания другого процесса
  3. В дочернем процессе:
  4. Используйте dup2() для замены stdout выходным концом канала. Не забудьте закрыть входной конец трубы.
  5. Используйте execlp() для выполнения hping
  6. В родительском процессе:
  7. выход hping будет доступен во входном конце канала. Не забудьте закрыть выходной конец трубы.
Другие вопросы по тегам