Конечно, звонить по номеру route
не рекомендуется, так как разветвление и выполнение выполняются редко.
К сожалению, я могу сказать вам [как основателю проекта Net-SNMP ,где мы сообщаем о маршрутах для многих платформ в C], нет независимого от платформы способа.Вам нужно будет узнать, как каждый хранит свою информацию и как к ней получают доступ.Например, в Linux вы можете получить его из / proc.В других ОС вы можете получить это через вызовы API.Вы вряд ли будете рады узнать, что того, чего вы хотите, не существует.И потом, вы даже найдете несколько платформ, которые могут отличаться между IPv4 и IPv6!
Вы, однако, можете свободно копаться в коде Net-SNMP и искать все способы, которыми это делается там.,См. agent/mibgroup/ip-forward-mib/data_access/
и agent/mibgroup/mibII/var_route.c
для начала.