Pregunta

Estoy trabajando en un sistema Linux integrado en C, estoy buscando el código fuente del equivalente de SendARP en Windows. ¿Algún puntero?

¿Fue útil?

Solución

Echa un vistazo a arping . La forma rápida y sucia de enviar un arp sería hacer:


foo = system("/somepath/arping somehost");

Pero un vistazo a la fuente de arping debería poder brindarte una mejor solución.

Sin embargo, para la solución completa, puedes construir la tuya a mano y usar un socket en bruto o libpcap para enviarlo.


por cierto. Si todo lo que intentas hacer es forzar el envío de un arp (pero necesariamente de ti), puedes lograrlo eliminando cualquier entrada de arp que ya tengas para tu host. El siguiente acceso a esa dirección requerirá que se envíe un arp.

por ejemplo. / usr / sbin / arp -d destination_host_ip

Otros consejos

Esto puede ser de interés: http://cvs.linux-ha.org/viewcvs/viewcvs.cgi/linux-ha/resources/heartbeat/SendArp.in?rev=1.4

Es una implementación en un script de Bourne Shell.

Nunca he visto nada específico para ARP, pero creo que puedes enviar cualquier tipo de paquete que quieras utilizando libpcap y los RFC apropiados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top