Необработанные сокеты, как указано в примере выше (Карл), могут дать вам доступ к заголовку L3.Однако обратите внимание, что в более современных Windows (XP SP3, Vista и 7) необработанные сокеты сильно ограничены уровнем сокетов, что затрудняет отправку произвольных данных по вашему выбору.
Вы также можетеиспользуйте специальные библиотеки, которые обеспечивают гораздо более сырой доступ к адаптеру Ethernet. WinPcap (для Windows) или libpcap (для Linux) позволит вам манипулировать всеми пакетными данными, включая заголовок Ethernet, и действительно отправлять любой другой протокол L2, который вы пожелаете.