网络相关对象在java.net包中。

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并遍历

//返回数据类型为Enumeration

Enumeration enu = NetworkInterface.getNetworkInterfaces();

while(enu.hasMoreElements){

NetworkInterface inet = enu.nextElement();

String intName = inet.getName();

}

由于一个接口上可能有多个子接口(辅助ip,如eth0:1),因此根据某个接口,可以得到该接口的所有ip地址枚举集合(同时包括Ipv4和ipv6接口)。

Enumeration 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 enu = NetworkInterface.getNetworkInterfaces();

ArrayList arr = Collections.list(enu);

for(Iterator it = arr.iterator();it.hasNext();) {

NetworkInterface ni = it.next();

String intName = ni.getName(); //获取接口名

//获取每个接口中的所有ip网络接口集合,因为可能有子接口

ArrayList inets = Collections.list(ni.getInetAddresses());

for(Iterator 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();

}

}

}

注:若您觉得这篇文章还不错请点击右下角推荐,您的支持能激发作者更大的写作热情,非常感谢!

java 获取ipv4的地址_java 获取ip地址和网络接口相关推荐

  1. 在windows中用java执行DOS命令arp -a获取已知MAC对应的ip地址

    在公司内网中,有一台主机(windows server2016)因为测试需要,在里面安装了九台centos7虚拟机,主机只在第一次安装系统时候链接显示器,之后就没有链接显示器,需要使用远程链接,但是因 ...

  2. 使用Java获取发送请求的电脑的IP地址

    介绍 客户端所有的请求信息都可以通过HttpServletRequest获得,获取客户端ip可以通过getRemoteAddr()获取. 但是如果客户端是通过代理访问我们的服务器,那么getRemot ...

  3. linux临时配置mac地址,Linux获取网卡型号、mac地址、修改IP地址的几种方法

    1.获取所有有(无)网卡型号 方法一.ifconfig 用法:ifconfig | grep | cut -d ':' -f 1 ubuntu root@ubuntu:~# ifconfig | gr ...

  4. springboot 获取访问接口的请求的IP地址

    工具类: import javax.servlet.http.HttpServletRequest; import java.net.InetAddress; import java.net.Unkn ...

  5. 在.NET中获取一台电脑名,IP地址及当前用户名

    在.NET中获取一台电脑名,IP地址及当前用户名是非常简单,以下是我常用的几种方法,如果大家还有其它好的方法,可以回复一起整理: 1. 在ASP.NET中专用属性: 获取服务器电脑名:Page.Ser ...

  6. mac系统访问群晖服务器地址,获取发现访问 U-NAS 系统管理中心 IP 地址方法

    摘要:方法一:系统自带显示系统开机运行后,在访问U-NAS管理中心界面会出现访问地址IP具体位置再在 To visit U-NAS Management Center: 的下方,红色边框区域内为U-N ...

  7. android获取设备eth0,eth1,wlan0的IP地址

    在做一些跟网络相关的需求时,很多时候需要获取到相关网络类型的IP地址,如下图: 这个时候用什么方法来获取这个IP地址呢?楼主在之前的开发中,找到了以下方法,代码如下,仅供参考: /*** Get Ip ...

  8. Linux网络配置——从自动获取IP地址转为固定IP地址

      众所周知,Linux中有两种获取ip的方式,那么自动获取IP地址和指定IP地址有什么区别和特点呢?为什么Linux程序员都需要使用固定IP地址呢? 如下所示: 两种获取方式的优缺点 1. 自动获取 ...

  9. 02. MAC地址 · ARP · ICMP · IP地址 · 子网 · 超网 · 端口

    MAC · IP · 子网 · 超网 MAC地址 MAC地址的表示格式 MAC地址操作(查看.修改)[实践] MAC地址的获取[实践] ARP ICMP IP地址 · 子网掩码 IP地址的组成 IP地 ...

  10. 电信系统服务器地址,电信服务器ip地址

    电信服务器ip地址 内容精选 换一换 云平台支持修改主网卡的私有IP地址,具体操作请参见本节内容.如需修改扩展网卡的私有IP地址,请删除网卡,并挂载新网卡.弹性云服务器已关机.如果网卡绑定了虚拟IP或 ...

最新文章

  1. 站长如何短线操作实现盈利
  2. Java 常用API的运用,效率及技巧
  3. DVWA--文件上传漏洞
  4. 7系列mrcc xilinx_XILINX 7系列FPGA_时钟篇
  5. 项目计划定制:项目计划划分与产品项目推进的有机结合
  6. VLC音频重采样Audio resample核心流程梳理
  7. java 随机生成大写字母_java 生成随机大写字母,整数,小写字母
  8. Machine Learning——Homework 7
  9. Codeforces Round #102 (Div. 1) D Help Shrek and Donkey 2
  10. 对数幅度谱图像matlab,幅度谱 fft2绘制图像的对数幅度谱,比较图像旋转、平移和缩放后的频谱...
  11. (CVPR-2018)Non-local Neural Networks
  12. day1 -- ELMO语言模型
  13. 大疆2019届秋招笔试--测试工程师
  14. 为什么现在台式计算机无光驱,为何现在大部分电脑(笔记本和台式机)都取消了光驱?...
  15. RabbitMQ的简单应用
  16. Python爬取门户论坛评论
  17. 【工具】vue excel导出
  18. 数据库中的参照完整性(Foreign Key)
  19. SMART S7-200PLC控制步进电机转动 step7开发环境 步进电机选择
  20. 全球及中国自然循环蒸发器行业研究及十四五规划分析报告

热门文章

  1. 12306查询车票信息返回的数据解析
  2. 【51单片机】(手把手教你)1602液晶屏-基础篇
  3. 如何在电脑上安装一个Android虚拟机
  4. Docker执行命令提示设备没有相对空间,无法创建,overlay2文件夹磁盘占满
  5. centos 7 parity 安装方法
  6. Parity Bit 奇偶校验
  7. matlab绘制图形hold on_matlab中hold on是什么意思
  8. vr手柄设置_最佳无线VR设置,最新和即将推出
  9. jQuery--样式操作(addClass()、removeClass()、toggleClass()、css())详解
  10. 植物大战僵尸:代码实现无限阳光