2015-11-16 191 views
0

目前我已经得到了所有MAC地址和IP地址列表,可以在我的主机上找到。这些还包括VM的网络信息。我正在使用Khalid Shaikh's 3rd option in codeguru中的第三个选项。但是,它会返回我看到的所有MAC地址和IP地址列表。有没有办法让我只能使用ip地址?示例场景将是我在ping服务器时使用的IP地址和mac地址。我能想到的唯一方法是跟踪路线,但我不知道如何在C++中执行此操作。任何帮助都可以。谢谢!获取主机的MAC地址和IP地址 - C++

回答

0

其实任何返回的接口都可能是您可以使用的接口。 因此,您将使用一个接口发送到某个目标地址,并使用其他目标地址来使用其他接口。

然后,您需要读取路由表以确定您的数据报实际发送的接口,具体取决于目标地址。

这样做,我会去在以下方向之一:

  • 从iptables的获取途径:从什么据说here没有程序上的API,但你可以使用shell命令
  • 获取路由表Routing sockets

    int sockfd = socket(AF_ROUTE,SOCK_RAW,0);

  • 获取路由表与Netlink sockets

一旦你获得你需要解释的路线,并找出哪些接口外发数据报将用于互联网或其他IP地址的路由表。