Unix forma de enviar / transmitir marco de Ethernet sin procesar

Quiero enviar datos Ethernet sin procesar, algo así como netcat para Ethernet en lugar de TCP. ¿Cuál es la forma más simple de hacer esto en Unix? Hasta ahora parece que tengo que escribir mi propia herramienta.

Bastante simple de lograr en Python, consulte Github: una forma de enviar packages de Ethernet sin procesar en Python

from socket import * def sendeth(src, dst, eth_type, payload, interface = "eth0"): assert(len(src) == len(dst) == 6) # 48-bit ethernet addresses assert(len(eth_type) == 2) # 16-bit ethernet type s = socket(AF_PACKET, SOCK_RAW) s.bind((interface, 0)) return s.send(src + dst + eth_type + payload) if __name__ == "__main__": print("Sent %d-byte Ethernet packet on eth0" % sendeth("\xFE\xED\xFA\xCE\xBE\xEF", "\xFE\xED\xFA\xCE\xBE\xEF", "\x7A\x05", "hello")) 

¿Scapy es suficiente para ti? Te permite build tus propios packages. → https://www.secdev.org/projects/scapy/

    Intereting Posts