Это, как и любая проблема, с которой вы сталкиваетесь в жизни, требует четкого определения проблемы.И вам нужно будет разбить ее на части.
Во-первых, вам нужно «обнаружить» топологию или она уже где-то представлена в текстовом файле?Требуется ли вам просто отобразить топологию (в этом случае программа под названием «graphviz», вероятно, уже выполнит ту работу, которая вам требуется)?Если вам нужно определить топологию, что это за сеть?LAN?WAN?TCP / IP?Что-то еще?
Тогда вы должны спросить себя, почему вы хотите использовать C или C ++ - из вашего вопроса может показаться, что у вас нет большого опыта работы с сетями - поэтому неясно, почему вы хотите пойтина проблему использования языка низкого уровня для выполнения выбранной вами задачи.Возможно, в ближайшем будущем подойдет язык высокого уровня.
Помните, что многие столкнулись с той же проблемой, с которой вы столкнулись - построение топологии сети;таким образом, есть много приложений, которые делают именно это.Возможно, вы могли бы уточнить причины, по которым вы хотите попробовать выполнить это задание самостоятельно?