Чтобы получить назначение, полученное из имени хоста, или применить алгоритм выбора адреса назначения (согласно RFC 3484), у нас есть библиотека API getaddrinfo()
. Если вы будете искать в сети, вы обнаружите, что тот же API можно использовать для выбора исходного адреса. Но когда я тестировал это практически этого не происходит.
Когда я сделал некоторую домашнюю работу, я обнаружил, что в Linux ядро само определяет подходящий исходный адрес в зависимости от адреса назначения, применяя эти правила (согласно RFC 3484). Это делается ядром в методе fib6_rule_action()
, это делается при отправке данных (например, в sendto()
).
Мой вопрос: есть ли какой-либо библиотечный API или системный вызов, который мог бы сделать это для меня на более раннем этапе, то есть перед отправкой данных.