Java获取本机名称、网卡名称、IP、MAC
获取所有IP
/*** 获取该主机上所有网卡的ip*/public static ArrayList<String> getAllHostIp(){ArrayList<String> hostAddress = new ArrayList<>();try{Enumeration<NetworkInterface> allNetInterfaces = NetworkInterface.getNetworkInterfaces();while (allNetInterfaces.hasMoreElements()){NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement();Enumeration<InetAddress> addresses = netInterface.getInetAddresses();while (addresses.hasMoreElements()){InetAddress ip = (InetAddress) addresses.nextElement();if (ip instanceof Inet4Address&& !ip.isLoopbackAddress() //loopback地址即本机地址,IPv4的loopback范围是127.0.0.0 ~ 127.255.255.255&& !ip.getHostAddress().contains(":")){hostAddress.add(ip.getHostAddress());}}}}catch(Exception e){e.printStackTrace();}return hostAddress;}
结果:
[192.168.239.1, 192.168.41.1, 192.168.2.169, 192.168.7.200, 192.168.6.200]
获取本机名、IP、MAC地址
import java.net.InetAddress;
import java.net.NetworkInterface;public class IpConfig {@SuppressWarnings("static-access")public static void main(String[] args) throws Exception {InetAddress ia = null;try {ia = ia.getLocalHost();String localname = ia.getHostName();String localip = ia.getHostAddress();System.out.println("本机名称是:" + localname);System.out.println("本机的ip是 :" + localip);} catch (Exception e) {e.printStackTrace();}InetAddress ia1 = InetAddress.getLocalHost();// 获取本地IP对象System.out.println("本机的MAC是 :" + getMACAddress(ia1));}// 获取MAC地址的方法private static String getMACAddress(InetAddress ia) throws Exception {// 获得网络接口对象(即网卡),并得到mac地址,mac地址存在于一个byte数组中。byte[] mac = NetworkInterface.getByInetAddress(ia).getHardwareAddress();// 下面代码是把mac地址拼装成StringStringBuffer sb = new StringBuffer();for (int i = 0; i < mac.length; i++) {if (i != 0) {sb.append("-");}// mac[i] & 0xFF 是为了把byte转化为正整数String s = Integer.toHexString(mac[i] & 0xFF);// System.out.println("--------------");// System.err.println(s);sb.append(s.length() == 1 ? 0 + s : s);}// 把字符串所有小写字母改为大写成为正规的mac地址并返回return sb.toString().toUpperCase();}
}
结果:
本机名称是:PC-DaiHaijiao
本机的ip是 :172.16.0.31本机的MAC是 :00-FF-0D-99-5E-1E
获取网卡名和IP
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.Enumeration;public class NetworkInterfaceTest {public static void main(String[] args) throws Exception {// 获得本机的所有网络接口Enumeration<NetworkInterface> nifs = NetworkInterface.getNetworkInterfaces();while (nifs.hasMoreElements()) {NetworkInterface nif = nifs.nextElement();// 获得与该网络接口绑定的 IP 地址,一般只有一个Enumeration<InetAddress> addresses = nif.getInetAddresses();while (addresses.hasMoreElements()) {InetAddress addr = addresses.nextElement();if (addr instanceof Inet4Address) { // 只关心 IPv4 地址System.out.println("网卡接口名称:" + nif.getName());System.out.println("网卡接口地址:" + addr.getHostAddress());System.out.println();}}}}
}
结果:
网卡接口名称:lo
网卡接口地址:127.0.0.1网卡接口名称:eth0
网卡接口地址:172.168.1.100网卡接口名称:eth1
网卡接口地址:172.168.1.200
Java获取本机名称、网卡名称、IP、MAC相关推荐
- Java 获取本机的外网 IP
原理 通过 HTTP 访问第三方获取 IP 的服务接口获取本机的外网 IP,例如: http://checkip.amazonaws.com/ https://ipv4.icanhazip.com/ ...
- Java获取本机的ip地址和Mac地址
Java获取本机的ip地址 //得到IP,InetAddress ia = InetAddress.getLocalHost();String ip=ia.toString().split(" ...
- 用java获取本机IP地址
在网上找了几个用java获取本机IP地址的代码,发现都少都有些不完美,自己整理了一下.突然之间很想把自己的IP地址给获取了,虽然用系统自带命令可以得到,但自己想写一个程序获取一下,到网上搜索了一下ja ...
- Java获取(外网)网络IP和本机真实IP Java获取真实IP Java获取真实ip Java获取本机ip Java获取 本机真实ip
/*** IP地址相关工具类*/ public class IpUtil {private static final Logger logger = LoggerFactory.getLogger(I ...
- 常识-java获取本机ipv6地址以及关闭临时ipv6地址
关闭临时ipv6地址 临时ipv6有助于本机安全,然而有时用不到,比如用其进行长久的ftp链接,随时待命是不合适的 右键管理员cmd,输入命令关闭临时ipv6 netsh interface ipv6 ...
- java 获取已有字体,java获取本机全部可用字体
java获取本机所有可用字体 //just for fun,那个28个字母的函数满满都是恶心 import java.awt.GraphicsEnvironment ; class Tester { ...
- 多个ip对应的是同一个mac_Python3+Scapy安装使用 + 查询本机对应网卡,IP,MAC代码...
安装 直接使用pip安装 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scapy 一些扩展功能,可选: pip install -i ...
- java获取本机IP
如果是在windows环境: 使用InetAddress.getLocalHost()方法即可. import java.net.InetAddress;public class Main {publ ...
- 获取本机所有网卡的网卡名、网卡描述、网卡MAC地址、网卡IP、网卡类型等信息及网线是否插入状态
使用windows sdk提供的API函数GetAdaptersInfo()可以获得本机所有网卡的网卡名.网卡描述.网卡MAC地址.网卡IP.网卡类型等信息,并用IP_ADAPTER_INFO结构体存 ...
最新文章
- wxWidgets:wxScrollEvent类用法
- 合并果子_tyvj1066_vijos1097_codevs1063_贪心+堆
- 英语发音规则---S字母
- [原] Android 自定义View 密码框 例子
- 十分钟上手 React+MirrorX,从此前端大神代码不再难懂 | 原力计划
- C++入门复习指南,C++Primer读书笔记
- Android判断是否使用MediaCodec硬解码(十二)
- Git 分支及bug分支合并
- 数值计算方法matlab课后答案,《现代的数值计算方法matlab版》习题解答.pdf
- java简历项目经验描述,分分钟搞定!
- 软件测试的基本理论与方法
- Python_pandas读取数据
- 教你用 Python 快速批量转换 HEIC 文件
- 数三退一问题||拉手成圈出圈问题
- 机器学习40讲-12正则化处理:收缩方法与边际化
- 照亮无尽前沿之路:华为正成为科技灯塔的守护者
- oracle ebs用什么开发,ORACLEERP开发基础之EBS开发基础
- HTTP之原理,长短连接,响应码,三握四挥,八种方法
- 利用计算机网线传东西,两个电脑用网线传东西_两台电脑用网线传文件
- SpringBoot-FastDFS