區域網跨網段根據主機名找IP

2021-09-01 17:40:40 字數 1501 閱讀 3215

本例需要被找的機器同時也在執行以下**。目前是遍歷所有ip進行查詢,效率很低,在沒找到更好的辦法之前只好用它了。

/**

* 在區域網(lan)裡面根據主機名找到對應的ip。

* 資訊描述:

*/public class iphostinlan

catch (ioexception e)

finally }}

catch (exception e)

}}.start();

}public static iphostinlan instance()

/*** 獲取主機名對應的ip。如果map中沒有那麼到區域網裡面去找。

* @param host

* @return

*/public string getip(string host)

ip = search(host);

if (ip == null)

else

return ip;

}/**

* 先在同一網段找,如果找不到再到其它網段找。

* @param host

* @return

*/private string search(string host)

catch (exception e)

if (ip == null)

if (localseg - i > -1)

i++;}}

catch (unknownhostexception e)

system.out.format("result from searching %s in other ip segments : %s\n", host, ip);

}return ip;

}/**

* 同時只能做乙個搜尋。

* @param host

* @param prefix

* @return

*/private synchronized string search(final string host, string prefix)

final string ip = prefix + i;

service.submit(new callable()

}catch (exception e)

finally

catch (ioexception e)

}return null;

}});

}service.shutdown();

while (resultip == null && false == service.isterminated())

catch (interruptedexception e)

}service.shutdownnow();

return resultip;

}public static void main(string args) throws ioexception

}

根據主機名獲得IP及根據IP獲得主機名

根據主機名獲得ip好說,前面已經學習過了,用函式gethostbyname獲得主機資訊,其中包括ip資訊 int cneighbordlg getipbyname afxmessagebox t list return 0 else 根據ip獲得主機資訊則要用gethostbyaddr函式 int ...

java 獲取區域網中的全部主機名和IP位址

命令 意義net view 獲取區域網中的全部主機名 ipconfig all 獲取本地ip,主機名,mac位址 arp a 獲取本區域網中的全部ip位址和實體地址 ping a x.x.x.x 獲取x.x.x.x的主機名 nbtstat a 主機名 獲取mac位址 執行外部命令 string co...

如何修改mac 下主機名 電腦名 區域網主機名

您電腦的名稱和本地主機名用於在本地網路上識別您的電腦。更改電腦的名稱 您電腦的名稱顯示在 共享 偏好設定面板的頂部。在 mac 上,選取蘋果選單 系統偏好設定 然後點按 共享 在 電腦名稱 欄中鍵入新名稱。可能需要點按鎖圖示 並提供管理員的名稱和密碼,然後才能更改名稱。更改您電腦的本地主機名 本地主...