2015-11-16 192 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地址的路由表。