我正在尋找一種簡單的方法將MAC地址轉換爲本地網絡中相應的IP地址。在我的情況下,只有兩個設備:一個非常普通的PC(192.168.0.1)和一個在其ROM中具有任意IP地址(192.168.0.xxx)的科學儀器。 PC和儀器通過UDP插座直接連接到CAT5電纜。如何將MAC地址轉換爲相應的IP地址?
我知道儀器的MAC地址,但是請假定它的IP地址是未知的。我想寫一個C/C++應用程序,它使用套接字連接與儀器對話。但是我需要在打開套接字之前知道IP地址(Windows上的WinSock,OS X和Linux上的sys /套接字)。
目前我使用非常骯髒的方式,如下所示。
- 執行ping命令
ping 192.168.0.2
(注:儀表不響應ping
)從192.168.0.2 - 重複這192.168.0.255
- 執行
arp -a
打印IP列表和MAC地址 - 找到已知的MAC地址和相應的IP地址從列表中
我想知道如何檢索IP地址在一個更復雜的冰封的方式。如果我可以在Mac,Linux和Windows機器上使用相同的方法,那將會非常好。
據我所知,我必須向網絡廣播一個ARP數據包,以便從一個已知的IP地址中檢索一個MAC地址。但是我找不到從MAC地址獲取IP地址的方法。
這就是所謂的RARP - 反向ARP。 https://en.wikipedia.org/wiki/Reverse_Address_Resolution_Protocol –
@VioletGiraffe這只是一個提供DHCP功能的過時變體 - 它不會幫助操作。一個基本上必須做OP已經做了什麼,ping整個範圍並且搜尋ARP緩存 - 除非儀器提供學習它的IP地址的具體方式。 – nos
@nos:DHCP與它有什麼關係? RARP正是OP所要求的。 –