2011-06-15 10 views

Respuesta

4

Puede abrir un conector de red y enviar mensajes de actualización de ruta. Hay an article acerca de cómo hacer esto.

+0

una vez que he enviado el mensaje getroute, no sé qué estructura va a estar allí en la respuesta, ¿alguna ayuda? – JuliandotNut

8

También puede ejecutar "strace route add ..." para ver cómo lo hace el comando route.

En mi sistema, usa ioctl con SIOCADDRT. Un poco de búsqueda aparece un poco sample code.

Curiosamente, la mejor documentación que he encontrado es de IBM's AS400 man pages.

Si solo quiere leer la tabla de enrutamiento, puede abrir y leer /proc/net/route. (De nuevo, strace muestra que así es como lo hace el comando route). Los números hexadecimales son direcciones IP de 32 bits en forma de máquina-endian. Pruebe cat /proc/net/route.

+0

ioctl no parece tener una opción para consultar la ruta. SIOCADDRT escribe en la tabla kernel. Solo necesito leer – cateof

+1

El título de su pregunta dice "modificar". – Nemo

+0

@cateof: He actualizado mi respuesta. – Nemo

1

Si solo desea consultar la tabla de enrutamiento, intente leer el archivo /proc/net/route. Funciona en mi sistema.

Cuestiones relacionadas