問題:我正在開發分佈式CPU/GPU模擬器的圖形前端。由於該模擬器使用MPI,因此它需要一個hostfile來詳細說明網絡上所有計算機的主機名,以便它知道要分配哪些計算機。由於我的應用程序的最終用戶不是計算機科學家(甚至可能不是計算機專業人員),所以我不能期望他們知道/找到網絡/集羣中每臺計算機的主機名。我想以編程方式執行此主機名發現,以便在應用程序啓動時,用戶可以看到可用的機器,並從中選擇他們想要運行的主機。如果可能的話,我希望這個解決方案是跨平臺的,但由於模擬器目前包含一些Linux依賴關係,所以我可以處理一個僅限於Linux的解決方案。網絡上所有機器的主機名搜索
我已經試過到目前爲止:我試圖利用nmap包使用的IP地址範圍爲本地網絡發現主機有命令在網絡上像nmap -sP <ip address range>
。但是,它只會轉儲主機的IP地址(而不是主機名)和我不確定如何將這些IP地址轉換爲ssh主機名(因爲MPI使用ssh進行主機發現)。另外,我使用ping提供的廣播地址類似的方法,並且返回了幾乎相同的結果。
我對這個問題的廣泛性質和缺乏代碼表示歉意,但我對網絡探測/編程不是很有經驗,我真的不知道從哪裏開始。我試着用google搜索,但是我找不到合適的選項(可能是因爲我的經驗不足導致我使用不正確的術語觸發不正確的結果)。我的背景主要是圖形和用戶界面編程,所以這比我的舒適區略微。