Java获取本机IP地址的三种方法总结

目录
  • 1 获取局域网IP地址
  • 2 获取全部 IPV4/IPV6 IP地址
  • 3 获取全部存放本机IP地址
  • 知识点补充

1 获取局域网IP地址

InetAddress.getLocalHost().getHostAddress();

2 获取全部 IPV4/IPV6 IP地址

private static List<String> getIpAddress() throws SocketException {
    List<String> list = new LinkedList<>();
    Enumeration enumeration = NetworkInterface.getNetworkInterfaces();
    while (enumeration.hasMoreElements()) {
        NetworkInterface network = (NetworkInterface) enumeration.nextElement();
        if (network.isVirtual() || !network.isUp()) {
            continue;
        } else {
            Enumeration addresses = network.getInetAddresses();
            while (addresses.hasMoreElements()) {
                InetAddress address = (InetAddress) addresses.nextElement();
                if (address != null && (address instanceof Inet4Address || address instanceof Inet6Address)) {
                    list.add(address.getHostAddress());
                }
            }
        }
    }
    return list;
}

3 获取全部存放本机IP地址

private static List<String> getIpAddress() throws SocketException {
    List<String> list = new LinkedList<>();
    Enumeration enumeration = NetworkInterface.getNetworkInterfaces();
    while (enumeration.hasMoreElements()) {
        NetworkInterface network = (NetworkInterface) enumeration.nextElement();
        Enumeration addresses = network.getInetAddresses();
        while (addresses.hasMoreElements()) {
            InetAddress address = (InetAddress) addresses.nextElement();
            if (address != null && (address instanceof Inet4Address || address instanceof Inet6Address)) {
                list.add(address.getHostAddress());
            }
        }
    }
    return list;
}

知识点补充

IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。

IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。

到此这篇关于Java获取本机IP地址的三种方法总结的文章就介绍到这了,更多相关Java获取本机IP地址内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • java实现IP地址转换

    一个IP地址是用四个字节(每个字节8位)的二进制码组成.请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出. 输入数据要求: 必须为二进制数,即只能输入0或者1 长度必须是32位 违背以上规则程序直接输出Wrong Format 输入格式: 在一行中给出32位二进制字符串. 输出格式: 在一行中输出十进制格式的IP地址,其由4个十进制数组成(分别对应4个8位的二进制数),中间用"."分隔开. 输入样例: 在这里给出一组输入.例如: 1100011010100100001

  • java如何获取本机IP地址

    本文实例为大家分享了java实现获取本机IP地址的具体代码,供大家参考,具体内容如下 原因:同一台机子上开着两个web工程,现在有需求需要保证两个项目之间交互的安全问题.因为有个旧的项目,所以尽量不做改动.只能在新项目中做改动. 处理办法:获取本地的IP地址,有请求进来时查看请求的来源,只有来源是本地IP的才予以通过. 代码如下: /** * 任务调度调用拦截器 */ public class TaskControlInterceptor implements Interceptor { //存

  • Java实现IP地址到二进制的转换

    Java编程实现十进制IP地址到二进制IP地址的转换. 如:192.168.1.100,转换后:11000000.10101000.00000001.01100100 要求: 1.定义自定义异常类InvalidIP(检查型的),代表IP地址非法---如:点分十进制IP段数不是4:各段数值不是0~255范围 2.定义公有静态方法convertIP实现转换,点分十进制IP地址为参数,转换后的二进制IP为返回值,在方法内检查参数IP地址的合法性,如非法,请抛出自定义异常InvalidIP public

  • Java实现复原IP地址的方法

    给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式. 示例: 输入: "25525511135" 输出: ["255.255.11.135", "255.255.111.35"] PS: 跪了,得LeetCode者得天下,上次我学的位运算符,这次学的ip地址 class Solution { private List<String> res = new ArrayList<>(); public List&

  • Java判断本机IP地址类型的方法

    复制代码 代码如下: package net; import java.net.*; /*  *  getAddress方法和getHostAddress类似,它们的唯一区别是getHostAddress方法返回的是字符串形式的IP地址,  *  而getAddress方法返回的是byte数组形式的IP地址.  *  Java中byte类型的取值范围是-128?127.如果返回的IP地址的某个字节是大于127的整数,在byte数组中就是负数.  *  由于Java中没有无符号byte类型,因此,

  • Java获取本机IP地址的三种方法总结

    目录 1 获取局域网IP地址 2 获取全部 IPV4/IPV6 IP地址 3 获取全部存放本机IP地址 知识点补充 1 获取局域网IP地址 InetAddress.getLocalHost().getHostAddress(); 2 获取全部 IPV4/IPV6 IP地址 private static List<String> getIpAddress() throws SocketException { List<String> list = new LinkedList<

  • 分享Python获取本机IP地址的几种方法

    目录 1.使用专用网站 2.使用自带socket库 3.使用第三方netifaces库 1.使用专用网站 获取的是公网IP 网址:http://myip.ipip.net 代码: import requests res = requests.get('http://myip.ipip.net', timeout=5).text print(res) 比较喜欢用这个,在命令窗口也能使用: curl http://myip.ipip.net 2.使用自带socket库 获取的是局域网IP. impo

  • JS获取本机IP地址的2种方法

    目录 1.获取本机IP地址方法1: 2.获取本机IP地址方法2 解决方案: 总结 1.获取本机IP地址方法1: if(typeof window != 'undefined'){     var RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;     if (RTCPeerConnection) (()=>{        

  • Java 获取本机IP地址的实例代码

    目录 前言 一.规则 二.获取 1.使用 2.工具类 前言 在Java中如何准确的获取到本机IP地址呢?网上大部分的做法是InetAddress.getLocalHost().getHostAddress().这的确能获取到本机IP地址,但是是不准确的.因为忽略了一个问题,网络环境是多变的,一台计算机不同的网卡有多个IP地址,Lan.WiFi.蓝牙.热点.虚拟机网卡等. 一.规则 127.xxx.xxx.xxx 属于 “loopback” 地址,即只能你自己的本机可见,就是本机地址,比较常见的有

  • c# 获得本地ip地址的三种方法

    网上有很多种方法可以获取到本地的IP地址.一线常用的有这么些: 枚举本地网卡 using System.Net.NetworkInformation; using System.Net.Sockets; foreach (NetworkInterface netif in NetworkInterface.GetAllNetworkInterfaces() .Where(a => a.SupportsMulticast) .Where(a => a.OperationalStatus == O

  • PHP获取用户访问IP地址的5种方法

    本文实例为大家分享了5种PHP获取用户访问IP地址的方法,供大家参考,具体内容如下 <?php //方法1: $ip = $_SERVER["REMOTE_ADDR"]; echo $ip; //方法2: $user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"]; $user_IP = ($

  • python 获取本机ip地址的两个方法

    第一种: 复制代码 代码如下: import socket import fcntl import struct def get_ip_address(ifname): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) return socket.inet_ntoa(fcntl.ioctl( s.fileno(), 0x8915, # SIOCGIFADDR struct.pack('256s', ifname[:15]) )[20:24]

  • 详解虚拟机下CentOS 6.5配置IP地址的三种方法

    实验软件环境:虚拟机Vmware Workstation10.0 .CentOS 6.5 32位 1.自动获取IP地址 虚拟机使用桥接模式,相当于连接到物理机的网络里,物理机网络有DHCP服务器自动分配IP地址. #dhclient 自动获取ip地址命令 #ifconfig 查询系统里网卡信息,ip地址.MAC地址 分配到ip地址后,用物理机进行ping ip地址,检测是否ping通. 2.手动设置ip地址 如果虚拟机不能自动获取IP,只能手动配置,配置方法如下: 输入命令 #vi /etc/s

  • LNAMP架构中后端Apache获取用户真实IP地址的2种方法

    一.Nginx反向代理配置: 1.虚拟主机配置 复制代码 代码如下: location / {    try_files $uri @apache;} location @apache {internal;    proxy_pass http://127.0.0.1:8080;    include proxy.conf;} location ~ .*\.(php|php5)?$  {    proxy_pass http://127.0.0.1:8080;    include proxy.

  • Shell脚本中获取本机ip地址的3个方法

    方法一: 复制代码 代码如下: /sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:" or /sbin/ifconfig|sed -n '/inet addr/s/^[^:]*:\([0-9.]\{7,15\}\) .*/\1/p' 方法二: 复制代码 代码如下: local_host="`hostname --fqdn`" local_i

随机推荐