如果兩個IP位於同一網絡上,我想在bash腳本中測試。Linux:檢查是否在同一網絡
我有一個IP $remoteIP
,我想測試它是否在同一網絡上(局域網)作爲我目前該機(因此,例如$remoteIP
= 192.168.2.200
和hostname -I
= 192.168.2.13
與子網掩碼例如255.255.255.0
這些主機在同一網絡上,192.168.1.32的主機將不在同一個網絡上。)
我想這樣做是因爲我想檢查是否在本地網絡上的計算機上運行ssh或一些帶有直接IP的服務器。基於此我想爲ps1-prompt(綠色=無ssh,黃色=本地網絡,紅色=在線服務器)着色
首先,我只需要支持大的子網掩碼(255.0.0.0,255.255。 0.0,255.255.255.0)。
所以我需要進行如下操作:接口
- 獲取子網掩碼在SSH連接進來
- 考什麼子網掩碼是(簡單,如果[...])
- 獲取通過ssh連接進入的IP地址
- 獲取遠程IP地址(我認爲它將在某個環境變量中)
- 子串兩個基於子網掩碼的地址
- 比較網絡部分。
在第1,3和5點,我不知道該怎麼做。
我知道,這不是你的答案,錯誤'ping -t 1 $ remoteIP'應該在不在同一個網絡中時失敗 –
但是,如果它沒有失敗,那麼它不在同一個網絡中是否合適;-)我只是說我可以達到服務器在一些其他的紐約。 – Tobi