java获取本地Ip

article/2025/10/29 15:39:09

程序人生

  • 前言
  • 一、传统方式
  • 二、新方式
  • 三、测试


前言

今天玩了一天(愧疚中),写一个简单的获取自己本地ip的一个工具类,可以拿到自己的本地ip,也是这两天用了自己研究了一下,记录下来方便理解。

一、传统方式

这个是之前在网上看到的方式,自己测试了一下,其获取的是虚拟ip并不是自己想要的,因此舍弃了这种不准确的获取方式。

    /*** 传统方式,非常简单直接通过InetAddress获取,但不准确获取的为虚拟ip* @throws UnknownHostException*/public static void getTraditionIp() throws UnknownHostException {InetAddress localHost = InetAddress.getLocalHost();String hostAddress = localHost.getHostAddress();String hostName = localHost.getHostName();System.out.println("传统方式-----------hostAddress = " + hostAddress);}

二、新方式

新方式,通过NetworkInterface遍历自己本地所有接口,获取自己先要的ip。在其中可以isUp判断是否是启动状态,isVirtual 判断是否是虚拟Ip,isLoopback 判断是否是子网络接口。

    /*** 新方式,遍历所有本地网络接口,找出自己想要的ip* @return*/public static String  getLocalIp() {try {Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();ArrayList<String > list = new ArrayList<>();while (networkInterfaces.hasMoreElements()) {NetworkInterface networkInterface = networkInterfaces.nextElement();//isUp判断是否是启动状态//isVirtual 判断是否是虚拟Ip//isLoopback 判断是否是子网络接口if (networkInterface.isUp()&&!networkInterface.isVirtual()&&!networkInterface.isLoopback()) {//内部网络地址Enumeration<InetAddress> inetAddresses = networkInterface.getInetAddresses();while (inetAddresses.hasMoreElements()) {InetAddress inetAddress = inetAddresses.nextElement();if (inetAddress instanceof Inet4Address) {String hostAddress = inetAddress.getHostAddress();String hostName = inetAddress.getCanonicalHostName();list.add(hostAddress);}}}}System.out.println("新方式--------"+list);} catch (SocketException e) {e.printStackTrace();}return null;}

三、测试

最后测试一波,结果没说啥问题,可以看到一个数据,是我存储的我自己本地启动的一些网络ip地址,其中192.168.1.5是我目前连接WiFi的内网地址。有兴趣的小伙伴们可以试一下,直接复制就可以用。有问题的欢迎评论区留言,哈哈。
在这里插入图片描述


import jdk.nashorn.internal.runtime.linker.LinkerCallSite;import java.net.*;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;/*** Demo class** @author crazy-water* @date 10/23/2021 21:19*/
public class getLocalIpAndRequestIp {/*** 传统方式,非常简单直接通过InetAddress获取,但不准确获取的为虚拟ip* @throws UnknownHostException*/public static void getTraditionIp() throws UnknownHostException {InetAddress localHost = InetAddress.getLocalHost();String hostAddress = localHost.getHostAddress();String hostName = localHost.getHostName();System.out.println("传统方式-----------hostAddress = " + hostAddress);}/*** 新方式,遍历所有本地网络接口,找出自己想要的ip* @return*/public static String  getLocalIp() {try {Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();ArrayList<String > list = new ArrayList<>();while (networkInterfaces.hasMoreElements()) {NetworkInterface networkInterface = networkInterfaces.nextElement();//isUp判断是否是启动状态//isVirtual 判断是否是虚拟Ip//isLoopback 判断是否是子网络接口if (networkInterface.isUp()&&!networkInterface.isVirtual()&&!networkInterface.isLoopback()) {//内部网络地址Enumeration<InetAddress> inetAddresses = networkInterface.getInetAddresses();while (inetAddresses.hasMoreElements()) {InetAddress inetAddress = inetAddresses.nextElement();if (inetAddress instanceof Inet4Address) {String hostAddress = inetAddress.getHostAddress();String hostName = inetAddress.getCanonicalHostName();list.add(hostAddress);}}}}System.out.println("新方式--------"+list);} catch (SocketException e) {e.printStackTrace();}return null;}public static void main(String[] args) throws UnknownHostException {getTraditionIp();getLocalIp();}}

http://chatgpt.dhexx.cn/article/ui9J3aP2.shtml

相关文章

Java 获取本机的外网 IP

原理 通过 HTTP 访问第三方获取 IP 的服务接口获取本机的外网 IP&#xff0c;例如&#xff1a; http://checkip.amazonaws.com/https://ipv4.icanhazip.com/http://bot.whatismyipaddress.com/等等… 考虑到这些第三方接口不一定 100% 稳定&#xff0c;例如可能出现下线、错…

video.js 源码分析(JavaScript)

video.js 源码分析&#xff08;JavaScript&#xff09; 组织结构继承关系运行机制 插件的运行机制 插件的定义插件的运行控制条是如何运行的UI与JavaScript对象的衔接 类的挂载方式 存储获取 组织结构 以下是video.js的源码组织结构关系&#xff0c;涉及控制条、菜单、浮层、进…

在网站中使用VideoJs视频播放器播放视频

之前使用videojs用来网页中播放视频&#xff0c;现在做一下总结 &#xff08;这里把插件下载及演示地址、使用方法及demo放出来&#xff09; 视频播放插件Video.js 插件下载地址&#xff1a; http://www.jq22.com/jquery-info404 演示播放视频地址&#xff1a;http://www.jq…

video.js的使用,打造自定义视频播放器(综合详解,可收藏)

video.js的使用&#xff0c;打造自定义视频播放器&#xff08;综合详解&#xff0c;可收藏&#xff09; 一、视频初始化&#xff1a;1、直接在viedo的HTML标签中 初始化,标签里面加上 class"video-js" 和 data-setup{} 属性&#xff0c;例如&#xff1b;2、使用js初…

vue 视频播放插件vue-video-player自定义样式、自动播放设置、设置一开始全屏播放视频、监听全屏事件

1、背景 项目中有涉及视频播放的需求&#xff0c;并且UI设计了样式&#xff0c;与原生的视频video组件有差异&#xff0c;所以使用了vue-video-player插件&#xff0c;并对vue-video-player进行样式改造&#xff0c;自定义播放暂停按钮、全屏按钮、时间进度条样式等&#xff0…

关于谷歌浏览器62版本之后引用video.js不能自动播放的问题(Cross-origin plugin content from http://vjs.zencdn.net/swf/5.0.0-rc

Cross-origin plugin content from http://vjs.zencdn.net/swf/5.0.0-rc1/video-js.swf must have a visible size larger than 400 x 300 pixels, or it will be blocked. Invisible content is always blocked.这句话的意思是&#xff1a;来自http://vjs.zencdn.net/swf/5.0.…

videojs播放器插件使用详解

HTTP stream是各家自己定义的http流&#xff0c;应用于国内点播视频网站。 HLS是苹果公司实现的基于 HTTP 的流媒体传输协议&#xff0c;全称 HTTP Live Streaming&#xff0c;可支持流媒体的直播和点播&#xff0c;主要应用在 iOS 系统&#xff0c;为 iOS 设备&#xff08;如…

videojs-flash.min.js 报错 this.el_.vjs_getProperty is not a function

videojs-flash.min.js 报错 this.el_.vjs_getProperty is not a function 没发现有什么好的解决方法&#xff0c;目前我的问题&#xff0c;就是切换页面的时候或出现这个问题&#xff0c;我猜测是因为this指向变了导致的&#xff0c;我的处理方法就是开个定时器&#xff0c;定时…

this.el_.vjs_getProperty is not a function

前言&#xff1a; 在使用video.js播放rtmp视频中切换页面&#xff0c;如果是弹框引入&#xff0c;关闭弹框时&#xff0c;必然会发现控制台报错这个&#xff0c;这是谈谈我这边遇到的这个问题&#xff0c;以及怎么解决的。 问题&#xff1a; 在说这个问题怎么解决之前&#xf…

Video.js使用教程一(详解)

在项目上遇到类似于直播的场景所以需要前端播放后台的视频流这个问题&#xff0c;所以就此问题记录一下&#xff0c; 在上一篇文章中写到了怎样搭建nginx流媒体服务器以及怎样使用ffmpeg进行推流&#xff0c;那么现在就缺前端拉流这一部分&#xff0c;通过这两个天的辛勤劳动终…

MySQL 导出 CSV 乱码

2019独角兽企业重金招聘Python工程师标准>>> 从MySQL导出数据到 csv 文件后&#xff0c;有时会发现用 excel 打开该导出 csv 文件显示的是乱码&#xff08;不得不说WPS是神器&#xff0c;打开不会乱码 office打开会乱码&#xff09;。这个问题是 csv 文件本身的文本…

Mac中解决CSV乱码问题

新建一个Excel文件&#xff0c;选择文件–》导入 2.选择CSV文件导入 3.“文件导入向导-第1步”弹框中“文件原始格式”选择"Unicode(UTF-8)"&#xff0c;点击下一步 4.“文件导入向导-第2步”中勾选“逗号” 5.“文件导入向导-第3步”保持默认选项&#xff0c;点击…

jemter读取csv乱码

目录 【问题描述】【解决方案】 【问题描述】 已经根据 jmeter读取csv报错配置后&#xff0c;执行压测脚本&#xff0c;jmeter读取csv乱码&#xff0c;请求信息中为乱码&#xff0c;但是不影响交易结果&#xff08;后续有导致交易失败&#xff0c;不知道是否因为乱码引起&…

java csv导出 乱码_java导出csv乱码解决方法介绍

1、问题 将查询的数据以xls文件导出时(UTF-8编码)&#xff0c;数据正常&#xff1b;但以CSV文件导出时&#xff0c;文件中的中文乱码&#xff0c;同样是UTF-8编码&#xff0c;改成GBK编码导出时&#xff0c;中文显示正常。 本以为问题解决&#xff0c;后面导出含拉丁字符(如)的…

win10打开csv乱码

解决方法&#xff1a; 1、打开Excel&#xff1b; 2、点击任务栏的<数据>&#xff1b; 3、点击<从文本/CSV>选择csv文件&#xff1b; 4、修改文件原始格式为&#xff1a;65001&#xff1a;Unicode(UTF-8); 5、点击加载&#xff0c;即可&#xff1b; 6、将文件另存为…

python写入csv中文乱码

利用python写入csv文件打开发现中文乱码。查找资料发现需要修改编码格式&#xff0c;我原来的写法是&#xff1a; f open(51招聘数据-金融分析2.csv,modea,encodingutf-8,newline)试了一下网上的修改encoding为utf-8-sig和gbk&#xff0c;最终发现’gbk’格式的编码是可行的。…

【csv乱码】csv文件打开乱码的情况

先选择“记事本”打开方式打开&#xff0c;打开肯定还是乱码的状态。 不用慌&#xff0c;点击 选择“另存为”该记事本为csv格式&#xff0c;并且选择编码格式为“带有BOM的UTF-8”&#xff08;默认会选择UTF-8&#xff0c;并不能解决乱码的问题&#xff09;。打开另存为的cs…

mysql导入CSV乱码问题解决

错误出现页面 MySQL在导入CSV的时候&#xff0c;其中的中文乱码 解决方案 1.右键该CSV&#xff0c;用记事本打开 2.点击文件–>另存为—>修改编码为UTF-8,再导入新的的CSV就可以了

python写入csv乱码问题

原代码&#xff1a; with open(csv_path, open_mode, newline)as f:f_csv_write csv.writer(f)f_csv_write.writerow(row) 乱码截图&#xff1a; 解决办法&#xff1a; 因为python创建csv文件默认的是ansi格式的&#xff0c;而程序中是utf-8的格式进行保存的&#xff0c;所以…

csv乱码问题

pgAdmin 导出CSV文件&#xff0c;直接打开出现乱码。 解决方法&#xff1a;使用excel导入该csv文件。 step1&#xff1a;资料 > 从文字档 step2&#xff1a; 选择CSV step3&#xff1a;档案原始格式改为&#xff1a;65001&#xff1a;Unicode&#xff08;UTF-8&#xff09;…