`
jaychang
  • 浏览: 734742 次
  • 性别: Icon_minigender_1
  • 来自: 嘉兴
社区版块
存档分类
最新评论

Java获取客户端请求IP,以及获取本机所有网卡的ip

 
阅读更多
   //获取客户端ip
    public static String getIpAddr(HttpServletRequest request) {
        String ip = request.getHeader("x-forwarded-for");
        if (ip == null || ip.length() == 0 || " unknown ".equalsIgnoreCase(ip)) {
            ip = request.getHeader("Proxy-Client-IP");
        }
        if (ip == null || ip.length() == 0 || " unknown ".equalsIgnoreCase(ip)) {
            ip = request.getHeader("WL-Proxy-Client-IP");
        }
        if (ip == null || ip.length() == 0 || " unknown ".equalsIgnoreCase(ip)) {
            ip = request.getRemoteAddr();
        }
        return ip;
    }
    
   //获取本机所有ip(多网卡)
    public static List<String> getLocalhostIp() {
        List<String> ips = new ArrayList<String>();
        try {
            Enumeration<NetworkInterface> nis = NetworkInterface.getNetworkInterfaces();
            InetAddress ia = null;
            while (nis.hasMoreElements()) {
                NetworkInterface ni = (NetworkInterface) nis.nextElement();
                Enumeration<InetAddress> ias = ni.getInetAddresses();
                while (ias.hasMoreElements()) {
                    ia = ias.nextElement();
                    if (ia instanceof Inet6Address)
                        continue;
                    if ("127.0.0.1".equals(ia.getHostAddress()))
                        continue;
                    ips.add(ia.getHostAddress());
                }
            }
        } catch (SocketException e) {
            throw new RuntimeException(e);
        }
        return ips;
    }

 

分享到:
评论

相关推荐

    java 获取客户端ip mac地址

    ### Java 获取客户端 IP 和 MAC 地址 在Java Web开发中,有时我们需要获取客户端的IP地址甚至是MAC地址,以便进行安全验证、用户行为追踪等操作。本文将详细介绍如何通过Java来实现这一功能。 #### 一、获取客户端...

    获取客户端真实IP(支持代理服务器)

    // 如果远程地址是本机,则根据网卡获取本机真实的IP地址 InetAddress inet = null; try { inet = InetAddress.getLocalHost(); } catch (UnknownHostException e) { e.printStackTrace(); } ip = inet....

    获取客户端IP、MAC

    以下是一些关于如何在Java环境下获取客户端IP和MAC地址的知识点。 首先,获取客户端IP地址通常涉及到服务器端的编程。在Java中,可以通过`java.net`包中的`Socket`或`HttpServletRequest`类来获取。当客户端发起...

    获取IP地址实例代码

    在浏览器环境中,由于同源策略的限制,JavaScript不能直接获取本地IP,但可以通过Ajax请求一个已知返回客户端IP的第三方API,如`WhatsMyIP`服务: ```javascript fetch('https://api.whatsmydns.net/#IP') .then...

    java 获取mac地址的两种方法(推荐)

    首先,第一种方法是通过`InetAddress`和`NetworkInterface`类来获取本机的MAC地址。这种方法的步骤如下: 1. 使用`InetAddress.getLocalHost()`获取本地主机的IP地址。 2. 使用`NetworkInterface.getByInetAddress...

    rmi 连接多 IP 多服务端自动路由

    "rmi 连接多 IP 多服务端自动路由"这个主题涉及到如何在RMI环境中实现高可用性和容错性,当服务端在一个IP地址上不可用时,客户端能自动切换到其他IP上的服务实例。 首先,我们要理解RMI的基本工作原理。RMI系统由...

    TCP/IP技术大全

    26.2.2 使用FTP客户端建立连接 288 26.2.3 FTP安全 296 26.2.4 FTP服务器及守护进程 299 26.2.5 匿名FTP访问 299 26.3 使用TFTP 300 26.3.1 FTP与TFTP的区别 301 26.3.2 TFTP命令 301 26.4 小结 301 第27章 使用...

    java网络教程

    本文将详细介绍Java网络编程的基础知识、核心类库以及如何使用Java实现TCP和UDP通信。 #### 计算机网络基本概念 计算机网络是通过一系列协议连接起来的计算机系统集合,这些协议定义了数据传输的规则。在网络编程...

    TCP-IP技术大全

    本书内容十分丰富,几乎涵盖了有关TCP/IP的各个方面,包括开放式通信模型、TCP/IP通信模型、IP网络中的命名和寻址机制、地址解析及反向地址解析协议、DNS域字服务器、WINS、地址发现协议、IPv6、IP网络中的路由协议...

    TCP/IP教程TCP/IP基础

    13.3.3 链路-状态请求报文 138 13.3.4 链路-状态更新报文 138 13.3.5 链路-状态应答报文 140 13.4 计算路由 140 13.4.1 使用自动计算 140 13.4.2 使用缺省路由耗费 141 13.4.3 最短路径树 142 13.5 小结 144 第14章 ...

    TCP/IP技术大全(中文PDF非扫描版)

    本书内容十分丰富,几乎涵盖了有关TCP/IP的各个方面,包括开放式通信模型、TCP/IP通信模型、IP网络中的命名和寻址机制、地址解析及反向地址解析协议、DNS域字服务器、WINS、地址发现协议、IPv6、IP网络中的路由协议...

    TCP/IP详解

    13.3.3 链路-状态请求报文 138 13.3.4 链路-状态更新报文 138 13.3.5 链路-状态应答报文 140 13.4 计算路由 140 13.4.1 使用自动计算 140 13.4.2 使用缺省路由耗费 141 13.4.3 最短路径树 142 13.5 小结 144 第14章 ...

    Java 16道面试题和答案.docx

    它提供了连接器组件,用于接收和响应客户端请求。 以上就是关于Java面试中涉及的一些关键知识点,涵盖了Tomcat、Servlet、数据库操作、网络协议等方面。这些知识对于理解Java Web开发和系统架构至关重要。

    linux无人值守kickstart.pdf

    在PXE启动流程中,客户端的网卡ROM包含PXE客户端,当计算机启动时,BIOS加载PXE客户端,客户端会发送一个广播请求给DHCP服务器以获取IP地址和其他网络信息。DHCP服务器响应客户端的请求,提供IP地址、TFTP服务器的...

    Java版水果管理系统源码-JavaInterview:Java面试总结

    Java版水果管理系统源码 “后台开发”指的是“服务端的网 络程序开 发”,从功能上可以具体描述为 :服务器收到客户端发来的 请求数据,解析请求数据后处理,最后返回结果 计算机网络 输入网址后发生了什么 1.浏览器...

    虚拟机网络连接_HTTP_

    1. **桥接模式(Bridge Mode)**:虚拟机的网络接口直接桥接到物理主机的网卡上,虚拟机与物理网络设备在同一网段,可以获取到真实的IP地址,能直接与其他设备通信。 2. **NAT模式(Network Address Translation)*...

Global site tag (gtag.js) - Google Analytics