http://my.oschina.net/yongyi/blog/498781
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
import javax.servlet.http.HttpServletRequest;
/**
* IP工具类
* @author geeksun
* 2011-9-23
*/
public class IpUtil {
/**
* @param 获取远程IP
* @return IP Address
*/
public static String getIpAddrByRequest(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;
}
/**
* @return 获取本机IP
* @throws SocketException
*/
public static String getRealIp() throws SocketException {
String localip = null;// 本地IP,如果没有配置外网IP则返回它
String netip = null;// 外网IP
Enumeration<NetworkInterface> netInterfaces =
NetworkInterface.getNetworkInterfaces();
InetAddress ip = null;
boolean finded = false;// 是否找到外网IP
while (netInterfaces.hasMoreElements() && !finded) {
NetworkInterface ni = netInterfaces.nextElement();
Enumeration<InetAddress> address = ni.getInetAddresses();
while (address.hasMoreElements()) {
ip = address.nextElement();
if (!ip.isSiteLocalAddress()
&& !ip.isLoopbackAddress()
&& ip.getHostAddress().indexOf(":") == -1) {// 外网IP
netip = ip.getHostAddress();
finded = true;
break;
} else if (ip.isSiteLocalAddress()
&& !ip.isLoopbackAddress()
&& ip.getHostAddress().indexOf(":") == -1) {// 内网IP
localip = ip.getHostAddress();
}
}
}
if (netip != null && !"".equals(netip)) {
return netip;
} else {
return localip;
}
}
}
分享到:
相关推荐
IpUtil工具类--通过request获取IP,通过IP获取地址(需要联网,调用淘宝的IP库)。使用场景:在网站开发记录用户增删改查日志的时候,往往需要记录操作人的IP地址,来准确的生成操作日志记录等
本机IP查询工具是一种用于查询计算机本地IP地址的工具。它可以帮助用户轻松地获取本机的IP地址、子网掩码、默认网关、DNS服务器等信息。...总之,本机IP查询工具是一种非常实用的工具,可以帮助用户轻松地获取.
java 获取ip 工具类 java 获取ip 工具类 java 获取ip 工具类 java 获取ip 工具类 java 获取ip 工具类 java 获取ip 工具类 java 获取ip 工具类 java 获取ip 工具类
本案例中的"工具类-获取访问ip地址工具类,自用留存"是一个专门用于获取网络访问IP地址的Java工具类。这个工具类可能包含了一些方法,用于在不同的网络环境中准确地获取到客户端的IP地址,这对于网络应用的统计分析...
从给定的文件信息来看,我们正在探讨的是一个名为`IpUtil`的Java类,它主要功能是实现IP地址(IPv4)与十进制整数之间的相互转换。这一工具在许多网络编程场景中非常实用,例如在网络设备管理、网络安全、IP地址池...
获取本机IP 设置本机IP配置为自动获取或者手动设置 测试端口是否可访问 Ping IP 功能实现通过用Socket类、Process类、来调用命令行程序测试和Socket访问端口。 温习知识写的小工具,如果有bug,那么理解万岁
获取本机IP+MAC+计算机名,多网卡情况下自动识别主网卡信息
例如,你可以使用`getsockname()`函数来获取本机连接的套接字的本地地址和端口,而`getpeername()`函数则用于获取远程连接的对端地址和端口。 3. **网络监视器**: 创建一个网络监视器,你需要监听系统级别的网络...
今天在本地虚拟机测试某个功能,其中有个环节是获取本机的IP,然后向中心服务器注册,通过日志发现本机IP获取出来的是一个172开头的特殊的IP:172.17.0.1。奇怪。。。 分析: 172.17.0.1这个IP是我之前在这台虚拟机...
获取本机IP地址有助于诊断网络问题、配置路由器设置或连接到远程服务器。 **2. ** **Delphi环境与MyIP项目:** Delphi是一款流行的Windows应用程序开发工具,支持快速开发桌面应用。MyIP项目包含多个文件,其中...
标题中的“根据ip获取对应城市.rar”提示我们这是一个关于通过IP地址识别地理位置的Java项目,主要功能是查询IP地址对应的城市信息。描述中提到“java根据个人ip,获取ip对应的城市”,确认了这一点,并且强调它还...
在Windows系统中,使用Qt框架进行网络编程时,获取和修改IP地址是常见的需求。本文将详细介绍如何通过Qt的QNetworkInterface、IPHlpApi库以及QSettings读取注册表来读取IP地址,并且会讲解如何利用netsh命令行工具来...
- 多店铺连锁:当有多家分店使用同一品牌小票机时,通过修改IP工具可以统一管理,便于远程监控和维护。 - 云打印服务:通过设置固定IP,小票机可以接入云打印平台,实现远程订单打印。 - 系统集成:在企业内部...
在提供的压缩包文件“IP工具类”中,可能包含了实现上述功能的Java类,可以帮助开发者更方便地获取和处理本机的网络信息。在使用时,只需导入相应的类并调用对应的方法即可。对于具体实现,由于未提供实际的源代码,...
Http请求Restful风格的远程调用,在远程调用的过程中会出现四种请求方式,这个工具把此部分代码给封装了一下。
树莓派(Raspberry Pi)是一...总的来说,"树莓派自动获取IP工具"是一个实用的小程序,它简化了树莓派用户获取和管理IP地址的过程,让远程操作变得更加便捷。对于初学者和经验丰富的开发者而言,都是一个值得拥有的工具。
这类工具如“WhereIsIP”可以帮助您快速定位目标Web站点的IP地址及其地理位置。只需输入目标网站的域名,工具即可返回该网站的IP地址以及所在位置。这种方式尤其适用于网络管理员和安全研究人员,能够快速判断网站...
资源包括一个IP纯真数据库文件,还有一个Java工具类,可以使用工具类查找对应IP的省市还有运营商,纯真数据库文件也可以自己下载最新的,或者安装纯真数据库获取最新版本,工具主要是解析纯真数据库文件,方便批量...
[工具类] 获取绝对路径 .java.txt [工具类] 记录log日志文件的工具类 .java.txt [工具类] 连接数据库的工具类 .java.txt [工具类] 使用Java程序来实现HTTP文件的队列下载 .java.txt [工具类] 文件操作工具类 .java....
java RestTemplate 远程调用工具类java RestTemplate 远程调用工具类java RestTemplate 远程调用工具类java RestTemplate 远程调用工具类java RestTemplate 远程调用工具类java RestTemplate 远程调用工具类