在项目中经常会遇到需要获取服务器的IP和本地IP,而我们大部分的服务器都配置在linux上,因此我们的代码必须要实现能够获取linux下服务器及本地ip
以下为我总结的代码:
//取得服务器Ip
public static String getSerIp(){
String clientIp ="";
// 根据网卡取本机配置的IP
Enumeration<NetworkInterface> allNetInterfaces; //定义网络接口枚举类
try {
allNetInterfaces = NetworkInterface.getNetworkInterfaces(); //获得网络接口
InetAddress ip = null; //声明一个InetAddress类型ip地址
while (allNetInterfaces.hasMoreElements()) //遍历所有的网络接口
{
NetworkInterface netInterface = allNetInterfaces.nextElement();
Enumeration<InetAddress> addresses = netInterface.getInetAddresses(); //同样再定义网络地址枚举类
while (addresses.hasMoreElements())
{
ip = addresses.nextElement();
if (ip != null && (ip instanceof Inet4Address)) //InetAddress类包括Inet4Address和Inet6Address
{
if(!ip.getHostAddress().equals("127.0.0.1")){
clientIp= ip.getHostAddress();
}
}
}
}
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return clientIp;
}
//获取客户端IP
public static String getClientIp() {
HttpServletRequest request = getHttpServletRequest();
String accessIP = request.getHeader("X-Forwarded-For");
if (accessIP == null || accessIP.length() == 0 || "unknown".equalsIgnoreCase(accessIP)) {
accessIP = request.getHeader("Proxy-Client-IP");
}
if (accessIP == null || accessIP.length() == 0 || "unknown".equalsIgnoreCase(accessIP)) {
accessIP = request.getHeader("WL-Proxy-Client-IP");
}
if (accessIP == null || accessIP.length() == 0 || "unknown".equalsIgnoreCase(accessIP)) {
accessIP = request.getRemoteAddr();
}
if (accessIP == null || accessIP.length() == 0 || "127.0.0.1".equalsIgnoreCase(accessIP)) {
try {
accessIP = InetAddress.getLocalHost().getHostAddress();
} catch (Exception e) {
accessIP = "";
}
}
return accessIP;
}
相关推荐
在Java编程中,获取服务器的IP地址和MAC地址是常见的需求,特别是在网络通信和系统管理中。本篇文章将详细介绍如何使用Java实现这一功能,包括针对单网卡和多网卡环境的情况。 首先,获取服务器的IP地址通常涉及到`...
在本文中,我们将详细介绍Java获取Linux服务器上的IP操作,包括Linux服务器上的网络接口、回环接口、获取IP地址的方法等。 Linux服务器上的网络接口 在Linux服务器上,网络接口是用来发送和接受数据包的基本设备...
在Java编程中,获取IP地址是一项常见的任务,特别是在网络编程和服务器开发中。这个"java IP地址工具类"是为了解决这个问题而设计的。它提供了便捷的方法来获取和处理IP地址,尤其对于获取客户端IP地址在Web应用中至...
总结来说,Java获取公网IP地址主要依赖于网络请求和第三方服务的配合。`ExternalIpAddressFetcher.java` 类提供了一个简单的方法来实现这个功能,通过向Amazon AWS提供的公共IP检查服务发起HTTP请求,并解析返回的IP...
这段代码首先尝试获取本地主机的IP地址,然后遍历所有网络接口来查找主网卡(例如`eth0`)的IP地址。 ### 结论 在实际开发中,获取客户端的IP地址是常见的需求,而获取MAC地址则较为罕见且可能存在一定的法律风险...
### Java 获取客户端 IP 地址 在 Web 开发中,获取客户端 IP 地址是一项非常重要的功能,尤其是在需要记录用户活动、实现地理位置定位或者进行安全验证等场景下。Java 提供了多种方式来获取客户端的 IP 地址,其中...
在Java编程环境中,获取本地IP地址是一个常见的需求,特别是在服务器端开发中,这可能涉及到网络通信、服务定位等多种场景。以下是一些关于如何在Java中获取本地IP的关键知识点: 1. **网络接口(Network Interface...
### Java获取客户端真实IP地址详解 在Web开发中,获取客户端的真实IP地址是一个常见的需求,尤其是在需要进行地理位置定位、安全审计、流量统计等场景下。然而,在存在反向代理服务器的环境中,传统的`request....
### Java获取IP地址知识点解析 在本篇文章中,我们将深入探讨如何使用Java语言来获取IP地址。这是一项在网络编程中非常基础且重要的技能,能够帮助开发者了解客户端或服务器的网络位置信息。以下是对给定文件中的...
- **网络接口配置**:`NetInterfaceConfig`类用于获取网络接口的配置信息,如IP地址、子网掩码、广播地址等。 - **网络接口统计**:`NetInterfaceStat`类可以获取网络接口的流量统计,如接收和发送的数据包数量。 ...
然而,在实际应用场景中,客户端请求往往经过了多级代理(如Apache、Squid等),这使得直接使用`request.getRemoteAddr()`方法获取到的IP地址并不是客户端的真实IP,而是代理服务器的IP地址。 例如,在使用Apache或...
在Java编程中,发送邮件和获取IP地址是两个常见的任务,尤其在系统集成、通知服务或者数据通信中。下面将详细讲解这两个知识点。 首先,让我们来看看如何使用Java发送邮件。在Java中,我们通常使用JavaMail API来...
在本文中,我们将深入探讨如何使用Java编程语言创建一个Swing界面应用,该应用能够修改本地计算机的IP地址。这个程序允许用户存储多个预设IP地址,并方便地在它们之间切换,同时也支持删除不需要的IP配置。我们将会...
### 使用Java获取访问者真实IP地址 在现代Web开发中,获取客户端的真实IP地址是非常重要的。这不仅有助于网站统计分析,还可以用于安全控制、地域限制等功能。然而,在使用如Apache、Squid等反向代理服务器的情况下...
当我们构建一个基于Servlet的Web应用程序时,有时需要获取访问用户的真实IP地址,这在处理用户请求、日志记录或者实现地理位置相关的功能时尤为关键。 Servlet是Java服务器端的一种组件,它扩展了Web服务器的功能,...
java获取Centos7服务器网卡ip 子网掩码 默认网关 DNS 同时设置网卡 及 重启网卡参考
在Java IPMI和VxIPMI中,你可以通过以下步骤获取服务器信息: 1. **建立连接**:首先,你需要通过Java程序建立到目标服务器的IPMI连接。这通常涉及设置服务器的IP地址、端口、用户名和密码。VxIPMI库可能提供了一种...
本篇文章将详细解释如何在Java环境下,通过Servlet和Reactive编程模型来获取HTTP请求中的IP地址。 首先,让我们从Servlet API开始。Servlet是Java用于构建动态Web应用程序的标准接口。在Servlet中,我们通常使用`...
总的来说,通过Java的`InetAddress`类,我们可以方便地获取本地主机和远程服务器的IP地址,这对于构建网络应用程序至关重要。不过,实际开发中还应考虑异常处理、性能优化以及网络环境的多样性等因素。
在Java编程语言中,获取IP地址是一项常见的任务,特别是在网络编程和服务器开发中。这个程序虽然界面简单,但核心功能强大,它能够帮助开发者获取指定域名对应的IP地址。以下是关于这个话题的一些详细知识点: 1. *...