Я для этих целей использовал raw сокеты.
Если хочешь меньше проблем, то используй WinCap. Для него есть ActiveX компонент PacketX. Там всё тривиально, но требует установки драйвера WinCap. А с raw сокетами проблем нет, только нужно хорошо знать архитектуру TCP/IP и в Windows XP SP 2 урезали сетевые функции
