先看一段**:the ip address of the local host. 在大多數機器上都可以取到本機ip
inetaddress.getlocalhost().gethostaddress()
但是多網絡卡配置的時候,就悲劇了:下圖這個機器使用上面的命令取回的是127.0.0.1。
用ifconfig看網絡卡:
這個時候就需要列舉多網絡卡判斷了
enumerationnetinte***ces = networkinte***ce.getnetworkinte***ces();
ip.issitelocaladdress() && !ip.isloopbackaddress()
最終方法如下(從網上copy來的..)
/**
* 多ip處理,可以得到最終ip
* @return
*/public static string getip() else if (ip.issitelocaladdress()
&& !ip.isloopbackaddress()
&& ip.gethostaddress().indexof(":") == -1) }}
} catch (socketexception e)
if (netip != null && !"".equals(netip)) else
}
關於JAVA取本機ip的一些傳說
先看一段 the ip address of the local host.在大多數機器上都可以取到本機ip inetaddress.getlocalhost gethostaddress 但是多網絡卡配置的時候,就悲劇了 下圖這個機器使用上面的命令取回的是127.0.0.1。用ifconfig看網...
關於127 0 0 1和本機IP的一些認識
這兩天要針對客戶的修改做一些驗證,發現不行,於是乎,各種上網找原因。問題的關鍵就是本機對本機傳送的ip資料報是如何處理的。乙個現象就是,用wireshark抓包,在a b兩台電腦上裝ftp server,如果在a訪問本機的ftp伺服器則wireshark並不會顯示相應的資料報,而a訪問b的ftp伺服...
關於127 0 0 1和本機IP的一些認識
這兩天要針對客戶的修改做一些驗證,發現不行,於是乎,各種上網找原因。問題的關鍵就是本機對本機傳送的ip資料報是如何處理的。乙個現象就是,用wireshark抓包,在a b兩台電腦上裝ftp server,如果在a訪問本機的ftp伺服器則wireshark並不會顯示相應的資料報,而a訪問b的ftp伺服...