目前我已经获得了可以在我的主机上找到的所有mac地址和IP地址的列表。这些也包括VM的网络信息。我正在使用Khalid Shaikh's 3rd option in codeguru中的第三个选项。但是,它返回了我看到的mac地址和ip地址的完整列表。有没有办法让我只能使用IP地址?一个示例场景将是我在ping服务器时使用的IP地址和mac地址。我能想到的唯一方法是跟踪路由,但我不知道如何在c ++中做到这一点。任何帮助都可以。谢谢!
答案 0 :(得分:0)
实际上,返回的接口中的任何一个都可以是您可以使用的接口。 因此,您将使用一个接口发送到某些目标地址,而对于其他目标地址,您将使用其他接口。
然后,您需要阅读路由表以确定您的数据报实际发送的接口,具体取决于目标地址。
为此,我将按以下方向之一进行:
int sockfd = socket(AF_ROUTE,SOCK_RAW,0);
获得路由表后,您需要解释路由并找出您的传出数据报将用于Internet或其他IP地址的接口。