国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

java獲取ip地址與網絡接口的方法示例

2024-07-13 10:16:17
字體:
來源:轉載
供稿:網友

java.net包

大家應該都知道,網絡相關對象在java.net包中,Java net包下的類如下:

java,ip地址,java獲取本機ip地址,java調用網絡接口

java,ip地址,java獲取本機ip地址,java調用網絡接口

1.獲取主機對象InetAddress

//獲取本地主機對象InetAddress host = InetAddress.getLocalHost();//根據ip地址或主機名獲取主機對象,以主機名獲取主機時需要DNS解析InetAddress host = InetAddress.getByName("192.168.100.124");InetAddress host = InetAddress.getByName(www.baidu.com);

2.獲取主機對象的ip地址和主機名(需要dns解析主機名)

host.getHostAddress();host.getHostName();

3.獲取本機所有接口NetworkInterface并遍歷

//返回數據類型為EnumerationEnumeration<NetworkInterface> enu = NetworkInterface.getNetworkInterfaces();while(enu.hasMoreElements){ NetworkInterface inet = enu.nextElement(); String intName = inet.getName();}

由于一個接口上可能有多個子接口(輔助ip,如eth0:1),因此根據某個接口,可以得到該接口的所有ip地址枚舉集合(同時包括Ipv4和ipv6接口)。

Enumeration<InetAddress> net_list = inet.getInetAddresses();while(net_list.hasMoreElements){ InetAddress net = net_list.nextElement(); String ip = net.getHostAddress();}

可以使用Collections.list()方法將Enumeration類型轉換為ArrayList集合的數據結構,然后使用Itreator遍歷器遍歷。

以下是獲取本機所有接口名稱和這些接口上的ipv4地址的方法(適用于Windows和Linux)。

import java.net.*;import java.util.*;public class EnumDemo { public static void main(String[] args) {  try {   //獲取所有接口,并放進枚舉集合中,然后使用Collections.list()將枚舉集合轉換為ArrayList集合   Enumeration<NetworkInterface> enu = NetworkInterface.getNetworkInterfaces();   ArrayList<NetworkInterface> arr = Collections.list(enu);   for(Iterator<NetworkInterface> it = arr.iterator();it.hasNext();) {    NetworkInterface ni = it.next();    String intName = ni.getName(); //獲取接口名    //獲取每個接口中的所有ip網絡接口集合,因為可能有子接口    ArrayList<InetAddress> inets = Collections.list(ni.getInetAddresses());    for(Iterator<InetAddress> it1 = inets.iterator();it1.hasNext();) {     InetAddress inet = it1.next();     //只篩選ipv4地址,否則會同時得到Ipv6地址     if(inet instanceof Inet4Address) {      String ip = inet.getHostAddress();      System.out.printf("%-10s %-5s %-6s %-15s/n", "InetfaceName:",intName,"| IPv4:",ip);     }    }   }  } catch (SocketException s) {   s.printStackTrace();  } }}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嵊州市| 浙江省| 延川县| 尚义县| 浦东新区| 霍山县| 株洲县| 通城县| 清水县| 乐清市| 巴林左旗| 秭归县| 营山县| 丰宁| 大洼县| 桐梓县| 灌阳县| 红原县| 长乐市| 商城县| 临澧县| 阜南县| 潜江市| 阜康市| 安阳县| 娄烦县| 永福县| 台东市| 水城县| 佛坪县| 高邑县| 简阳市| 资源县| 彝良县| 和政县| 泗洪县| 藁城市| 嘉兴市| 日喀则市| 赤水市| 无锡市|