成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

java獲取ip地址與網(wǎng)絡接口的方法示例

java.net包

創(chuàng)新互聯(lián)公司2013年開創(chuàng)至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務公司,擁有項目成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元雙塔做網(wǎng)站,已為上家服務,為雙塔各地企業(yè)和個人服務,聯(lián)系電話:18980820575

大家應該都知道,網(wǎng)絡相關(guān)對象在java.net包中,Java net包下的類如下:

java獲取ip地址與網(wǎng)絡接口的方法示例

java獲取ip地址與網(wǎng)絡接口的方法示例

1.獲取主機對象InetAddress

//獲取本地主機對象
InetAddress host = InetAddress.getLocalHost();
//根據(jù)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并遍歷

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

由于一個接口上可能有多個子接口(輔助ip,如eth0:1),因此根據(jù)某個接口,可以得到該接口的所有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類型轉(zhuǎn)換為ArrayList集合的數(shù)據(jù)結(jié)構(gòu),然后使用Itreator遍歷器遍歷。

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

import java.net.*;
import java.util.*;
public class EnumDemo {
 public static void main(String[] args) {
  try {
   //獲取所有接口,并放進枚舉集合中,然后使用Collections.list()將枚舉集合轉(zhuǎn)換為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網(wǎng)絡接口集合,因為可能有子接口
    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();
  }
 }
}

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對創(chuàng)新互聯(lián)的支持。

文章題目:java獲取ip地址與網(wǎng)絡接口的方法示例
標題來源:http://jinyejixie.com/article0/peosoo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供域名注冊靜態(tài)網(wǎng)站、App開發(fā)網(wǎng)站策劃、營銷型網(wǎng)站建設虛擬主機

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營
邹城市| 新兴县| 日照市| 镇平县| 滦南县| 福建省| 涪陵区| 绥阳县| 从化市| 廉江市| 泸州市| 滁州市| 兰西县| 龙胜| 华池县| 华池县| 兴文县| 台前县| 普兰店市| 双鸭山市| 城口县| 肇东市| 古浪县| 赣榆县| 天柱县| 广德县| 聂荣县| 四子王旗| 汉中市| 吉林省| 宜章县| 绵阳市| 保亭| 蚌埠市| 开封市| 资阳市| 尼玛县| 玛沁县| 景洪市| 哈密市| 蕲春县|