0
我開發的採用C++爲我們的項目代碼的一部分,我的代碼必須在一個子網中返回所有可用的IP地址列表,所以我有這樣的場景:找到所有的IP子網中
獲取我的子網。
測試每一個IP子網使用
for
循環,例如:for (int i = 0; i < 254; i++) { testip(X, X, X, i); /* if IP is valid */ vectoriplist.push_back(X, X, X, i); }
對於發現子網我想我會用IPnetwork utility,但我仍然有一個問題,它是我如何可以測試該IP在子網上有效。我嘗試使用boost.asio
,但我找不到任何東西。
這取決於您稱爲有效IP地址的內容,它是否對應一個硬件響應ping請求的地址?然後,您可以嘗試使用簡單的SYN/ACK tcp ping – Geoffroy
假設網絡是鏈路本地的,即通過鏈路可見,則可以使用每個IPv4子網具有廣播地址的事實。對於IPv6來說,只需ping到ff02 :: 1(全節點地址)就可以實現。 – hroptatyr
您可以使用fping在子網中查找有效的節點。 http://www.cyberciti.biz/tips/linux-unix-profiling-network-connectivity-with-fping.html – Arvind