java 获取ipv4的地址_java 获取ip地址和网络接口
网络相关对象在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地址和网络接口相关推荐
- 在windows中用java执行DOS命令arp -a获取已知MAC对应的ip地址
在公司内网中,有一台主机(windows server2016)因为测试需要,在里面安装了九台centos7虚拟机,主机只在第一次安装系统时候链接显示器,之后就没有链接显示器,需要使用远程链接,但是因 ...
- 使用Java获取发送请求的电脑的IP地址
介绍 客户端所有的请求信息都可以通过HttpServletRequest获得,获取客户端ip可以通过getRemoteAddr()获取. 但是如果客户端是通过代理访问我们的服务器,那么getRemot ...
- linux临时配置mac地址,Linux获取网卡型号、mac地址、修改IP地址的几种方法
1.获取所有有(无)网卡型号 方法一.ifconfig 用法:ifconfig | grep | cut -d ':' -f 1 ubuntu root@ubuntu:~# ifconfig | gr ...
- springboot 获取访问接口的请求的IP地址
工具类: import javax.servlet.http.HttpServletRequest; import java.net.InetAddress; import java.net.Unkn ...
- 在.NET中获取一台电脑名,IP地址及当前用户名
在.NET中获取一台电脑名,IP地址及当前用户名是非常简单,以下是我常用的几种方法,如果大家还有其它好的方法,可以回复一起整理: 1. 在ASP.NET中专用属性: 获取服务器电脑名:Page.Ser ...
- mac系统访问群晖服务器地址,获取发现访问 U-NAS 系统管理中心 IP 地址方法
摘要:方法一:系统自带显示系统开机运行后,在访问U-NAS管理中心界面会出现访问地址IP具体位置再在 To visit U-NAS Management Center: 的下方,红色边框区域内为U-N ...
- android获取设备eth0,eth1,wlan0的IP地址
在做一些跟网络相关的需求时,很多时候需要获取到相关网络类型的IP地址,如下图: 这个时候用什么方法来获取这个IP地址呢?楼主在之前的开发中,找到了以下方法,代码如下,仅供参考: /*** Get Ip ...
- Linux网络配置——从自动获取IP地址转为固定IP地址
众所周知,Linux中有两种获取ip的方式,那么自动获取IP地址和指定IP地址有什么区别和特点呢?为什么Linux程序员都需要使用固定IP地址呢? 如下所示: 两种获取方式的优缺点 1. 自动获取 ...
- 02. MAC地址 · ARP · ICMP · IP地址 · 子网 · 超网 · 端口
MAC · IP · 子网 · 超网 MAC地址 MAC地址的表示格式 MAC地址操作(查看.修改)[实践] MAC地址的获取[实践] ARP ICMP IP地址 · 子网掩码 IP地址的组成 IP地 ...
- 电信系统服务器地址,电信服务器ip地址
电信服务器ip地址 内容精选 换一换 云平台支持修改主网卡的私有IP地址,具体操作请参见本节内容.如需修改扩展网卡的私有IP地址,请删除网卡,并挂载新网卡.弹性云服务器已关机.如果网卡绑定了虚拟IP或 ...
最新文章
- 站长如何短线操作实现盈利
- Java 常用API的运用,效率及技巧
- DVWA--文件上传漏洞
- 7系列mrcc xilinx_XILINX 7系列FPGA_时钟篇
- 项目计划定制:项目计划划分与产品项目推进的有机结合
- VLC音频重采样Audio resample核心流程梳理
- java 随机生成大写字母_java 生成随机大写字母,整数,小写字母
- Machine Learning——Homework 7
- Codeforces Round #102 (Div. 1) D Help Shrek and Donkey 2
- 对数幅度谱图像matlab,幅度谱 fft2绘制图像的对数幅度谱,比较图像旋转、平移和缩放后的频谱...
- (CVPR-2018)Non-local Neural Networks
- day1 -- ELMO语言模型
- 大疆2019届秋招笔试--测试工程师
- 为什么现在台式计算机无光驱,为何现在大部分电脑(笔记本和台式机)都取消了光驱?...
- RabbitMQ的简单应用
- Python爬取门户论坛评论
- 【工具】vue excel导出
- 数据库中的参照完整性(Foreign Key)
- SMART S7-200PLC控制步进电机转动 step7开发环境 步进电机选择
- 全球及中国自然循环蒸发器行业研究及十四五规划分析报告
热门文章
- 12306查询车票信息返回的数据解析
- 【51单片机】(手把手教你)1602液晶屏-基础篇
- 如何在电脑上安装一个Android虚拟机
- Docker执行命令提示设备没有相对空间,无法创建,overlay2文件夹磁盘占满
- centos 7 parity 安装方法
- Parity Bit 奇偶校验
- matlab绘制图形hold on_matlab中hold on是什么意思
- vr手柄设置_最佳无线VR设置,最新和即将推出
- jQuery--样式操作(addClass()、removeClass()、toggleClass()、css())详解
- 植物大战僵尸:代码实现无限阳光