Domanda

Sto lavorando su un sistema Linux incorporato in C, sto cercando il codice sorgente per l'equivalente di SendARP in Windows. Qualche puntatore?

È stato utile?

Soluzione

Dai un'occhiata a arping . Il modo rapido e sporco di inviare un arp sarebbe fare:


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

Ma uno sguardo alla fonte arping dovrebbe essere in grado di darti una soluzione migliore.

Per la soluzione completa, tuttavia, puoi costruirne uno a mano e utilizzare un socket non elaborato o libpcap per inviarlo.


btw. Se tutto ciò che stai cercando di fare è forzare l'invio di un arp (ma necessariamente da parte tua), puoi farlo cancellando qualsiasi voce arp che hai già per il tuo host. Il prossimo accesso a quell'indirizzo richiederà l'invio di un arp.

ad es. / usr / sbin / arp -d destination_host_ip

Altri suggerimenti

Questo potrebbe essere di interesse: http://cvs.linux-ha.org/viewcvs/viewcvs.cgi/linux-ha/resources/heartbeat/SendArp.in?rev=1.4

È una implmenetation in uno script Bourne Shell.

Non ho mai visto nulla di specifico per ARP, ma penso che tu possa inviare qualsiasi tipo di pacchetto tu voglia usando libpcap e gli RFC appropriati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top