如何獲取LAN中的所有IP地址和相關主機名?LAN網絡上所有主機的列表
回答
要獲取接口和IP地址列表,請使用getifaddrs()
。
搜索界面與ifa_addr->sa_family == AF_INET
的IP地址是在sin_addr.s_addr
。
然後,您可以使用gethostbyaddr()
來查找該IP地址的DNS名稱。
更新:
有人向我指出的是,OP可能是詢問發現其他主機,而不是在本地計算機上的接口地址。
沒有可靠的方法來發現局域網上的其他機器,但有一些技巧。
Ping方法:使用ping實用程序(或與其等效的程序)ping本地廣播地址,然後查看誰迴應。通過列出如上所示的接口可以找到廣播地址。我相信ICMP在OSX下不需要root權限。請注意,許多系統可能禁用了ICMP ping或防火牆,因此您只能從非隱形設備獲得響應。
ARP方法:檢查系統ARP緩存以查看哪些IP地址最近處於活動狀態。這將只顯示最近幾分鐘內在同一網段上廣播數據包的系統。
這兩種方法都可以被防火牆,路由器甚至交換機阻塞,所以「LAN」的確切邊界可能非常窄。這兩種方法都可以通過編程方式實現,但只需調出命令行ping
或arp
命令就可以更簡單,更方便。
這個問題聽起來更像是作者想要枚舉LAN上的所有不同主機,而不僅僅是關於當前主機上行鏈路的信息。 – jdizzle 2012-05-07 02:31:38
也許吧。我現在看到原來的問題不是平臺特定的,所以你可能是正確的。 – 2012-05-07 13:58:53
- 1. 網絡上所有機器的主機名搜索
- 2. 下載互聯網上的所有網絡主機
- 3. 如何列出本地WiFi/LAN網絡上的所有共享設備?
- 4. Java - 列出局域網上的所有網絡打印機
- 5. Python掃描網絡上的所有主機
- 6. Web API自主機 - 在所有網絡接口上綁定
- 7. 如何列出網絡電腦上的所有打印機
- 8. 如何列出網絡上的所有打印機?
- 9. 檢索主機Android手機上的所有音樂列表
- 10. 網絡上的可用主機
- 11. 網絡主機上的套接字
- 12. 將IP列表到主機/網絡地址列表
- 13. 所有虛擬主機上的rabbitmq列表隊列
- 14. 獲取IP地址的所有主機名的網絡
- 15. 得到一個LAN網絡
- 16. 連接到lan網絡
- 17. 沒有模板的網絡主機
- 18. 網絡主機上的網絡抓取應用程序
- 19. 獲取本地網絡(LAN)中的設備列表?
- 20. 如何訪問本地網絡(LAN)中的虛擬主機名xampp
- 21. 在網絡主機上導入熊貓
- 22. 網絡中的所有流量都發送給所有主機嗎?
- 23. 如何在橋網絡和主機網絡上創建服務?
- 24. 查找wifi lan上的所有網絡設備 - 未發現智能手機設備
- 25. Erlang:獲取多主機羣集上所有節點的列表
- 26. 列出iPhone上本地網絡上的所有計算機名稱
- 27. Python中本地網絡的IP地址/主機名列表
- 28. Quartz.NET後網絡主機
- 29. MySQL用戶主機網絡
- 30. 主機到網絡雙重?
什麼是您的平臺(OS)?你想要C++還是Cocoa? – 2010-10-26 13:14:16
@Steve:我的平臺是Mac OS X 10.6和可可開發人員。但是,我正在使用RFB協議。我必須使用那些用C/C++語言編寫的協議。 – boom 2010-10-26 13:18:19
因此,OS X上的C/C++解決方案將適合您? – 2010-10-26 13:24:48