java ip地址接口_java获取ip地址与网络接口的方法示例
java.net包
大家应该都知道,网络相关对象在java.net包中,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 ip地址接口_java获取ip地址与网络接口的方法示例相关推荐
- java ip地址查询接口_java获取ip地址与网络接口的方法示例
java获取ip地址与网络接口的方法示例 发布时间:2020-09-20 23:57:52 来源:脚本之家 阅读:66 作者:骏马金龙 java.net包 大家应该都知道,网络相关对象在java.ne ...
- java 取随机整数_Java获取随机整数的两种方法
方式一: 使用 Random 类 举例:获取 0~3 范围内(包括 0 和 3 )的 int 类型的随机数 Random random = new Random(); System.out.print ...
- java调用MySQL脚本_Java调用SQL脚本执行常用的方法示例
前言 大家都知道,在Java中调用SQL脚本的方式有多种,在这里只记录一种自己常用的方式,个人觉得挺实用方便的. 运用ScriptRunner这个类. ScriptRunner类用于执行SQL语句,例 ...
- java去掉重复字符_Java实现去掉字符串重复字母的方法示例
本文实例讲述了Java实现去掉字符串重复字母的方法.分享给大家供大家参考,具体如下: package demo; public class Ctrl { public static void main ...
- Java获取IP地址和VUE获取IP地址。
java 获取 IP String ip = "";String address = "";try {// 获取IP地址ip = InetAddress.get ...
- 原创|批处理|批处理设定IP地址与自动获取IP之间的切换
批处理设定IP地址与自动获取IP之间的切换 背景 在办公环境中,通常,内网的IP地址是指定的,随意更改会导致上不了网或者IP地址冲突:但是当我们将办公电脑带回家中时,通常是自动获取IP地址的.手动来回 ...
- express 获取ip地址,并获取ip对应的城市名
1.安装 express-ip 中间件 npm install express-ip --save-dev yarn add express-ip --save-dev 2.app.js引入并注册 头 ...
- 通过淘宝接口免费获取IP地址信息
1.获取互联网访问IP信息 一般获取互联网访问的IP的相关信息一般都是收费接口,免费的接口不多,我使用到一个接口如下: http://ip.taobao.com/service/getIpInfo.p ...
- java转换ip地址格式转换_Java编程IP地址和数字相互转换代码示例
最近才知道,将ip地址转换成十进制.八进制.十六进制同样可以访问网站. IP转为数字(第二种算法.用左移.按位或实现.效率更高.): public long ipToLong(String ipAdd ...
最新文章
- Linux系统快速安装JDK
- OpenCV2.4.9 显示鼠标框选区域,其他部分全为零,鼠标创建ROI区域
- windows操作系统自带的TCP端口转发
- Kafka设计解析(六)- Kafka高性能关键技术解析
- 2020年应届生找工作难?Python爬虫解析疫情之下用人市场中的机遇与挑战
- Vue学习小案例--分页组件封装
- nfc 过滤 android,android-NFC意图过滤器= I / NfcDispatcher(923):连...
- python爬虫新浪新闻_学习了《python网络爬虫实战》第一个爬虫,爬取新浪新闻
- 给Eclipse安装MinGW
- DockOne微信分享(一四一):如何开发部署Kubernetes Native应用
- 国内外自动驾驶仿真软件总结
- 配置ouster雷达过程
- Redhat7.5安装谷歌浏览器
- java -verbose命令
- clip_gradient_norms()
- 结合《穹顶之下》看中、美宽带提速
- 轻松学编曲,论FL钢琴卷帘
- VLOOKUP函数的多条件引用
- 三星Android Pie软件,三星开始向欧洲Galaxy S9用户推送Android Pie稳定版更新包
- Linux中 vi、删除和退出 简单操作
热门文章
- 使用git log统计代码行数
- 使用超以太网来降低LED照明的成本
- DotAsterisk(点星PBX)IPPBX V4.1下载地址
- [解读REST] 1.REST的起源
- gremlin 语法
- java中 never closed_【Spring】在Java使用Spring时的Resource leak: 'applicationContext' is never closed警告...
- 协同开发冲突怎么解决?
- honeyselect身高补丁_honey select姿势mod最新补丁
- 威胁聚焦:Phobos勒索软件名不虚传
- Vue在线预览ppt,可嵌入组件显示也可新开页面显示