JAVA 优先获取外网Ip,再获取内网Ip
1、获取内网Ip
private String getLocalhostIp(){
String hostAddress = "";
try {
InetAddress address = InetAddress.getLocalHost();
hostAddress = address.getHostAddress();
} catch (UnknownHostException e) {
e.printStackTrace();
}
return hostAddress;
}
2、获取外网Ip
private String getRemoteAddr() {
String ip ="";
try {
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.split(",")[0];
} catch (Exception e) {
e.printStackTrace();
}
return ip;
}
3、获取用户Ip
public String getIpAddr(){
String ip = this.getRemoteAddr();
if("".equals(ip)){
ip = this.getLocalhostIp();
}
return ip;
}
JAVA 优先获取外网Ip,再获取内网Ip的更多相关文章
- 配置NAT回流导致外网解析到了内网IP
单位有3个域名,用量很大,2014年开始本人研究部署了Bind+DLZ +Mysql的三机智能多链路DNS,非常好用,优点是: 1.使用Mysql管理记录,配置.管理.查询方便. 2.自动判断运营商, ...
- H3C SecPath U200-S 如何在内网使用外网IP地址访问内网服务器
H3C SecPath U200-S 如何在内网使用外网IP地址访问内网服务器 ------------------------------------------------------------ ...
- 获取本地的IP地址(内网)
方法一 public static String getLocalIpAddress() { try { for (Enumeration<NetworkInterface> en = N ...
- JAVA判断IP是否是内网IP
/** * 私有IP: * A类 10.0.0.0-10.255.255.255 * B类 172.16.0.0-172.31.255.255 * C类 192.168.0.0-192. ...
- 在外网使用ssh连接内网中的多台Linux服务器
最近因为要对全球工控机网络进行协议扫描,需要在实验室配置几台服务器,因为我们只有一个IP地址,所以是用路由器搭建了一个内网(拓扑结构如下图).但是这样做了之后无法在宿舍通过ssh直接连接服务器,因为那 ...
- CentOS下OpenVPN实现公网IP映射到内网(iptables转发功能)(转)
说明:这种方案的实现前提是必须要有一台拥有公网IP的电脑,OpenVPN搭建过程很普通,关键技术在于iptables的转发.搭建教程可能有点旧了,可以只看iptables的关键点技术. 方案背景: 公 ...
- 利用阿里云搭建frp实现外网远程桌面链接内网电脑
主要应用场景:针对学生放假回家使用外网无法远程操作学校的服务器或者电脑,这里通过阿里云的云服务器搭建一个frp服务,实现内网穿透,从而可以直接通过远程桌面或者其他工具实现对校园网内的服务器或者电脑进行 ...
- 没固定公网 IP 的公司内网实现动态域名解析( 阿里云万网解析 )
情景说明 前段时间应公司需求,需要将内网的服务映射到公网.由于公司使用的是类似家庭宽带的线路,没有固定的公网 IP 地址,所以决定使用域名来完成. 当时有几种方案: 1.花生壳:但是目前需要乱七八糟的 ...
- SSH反向连接让外网也可远程访问内网机器
最近把树莓派折腾了一番,放在了家里,但是家里是内网,出门在外,不方便直接ssh上来,于是请教了秦兄,指点迷津,发现SSH反向链接可以实现这个功能. 1. ssh反向链接的概念 A主机:外网,ip:11 ...
随机推荐
- 什么是SG?+SG模板
先,定义一下 状态Position P 先手必败 N x先手必胜 操作方法: 反向转移 相同状态 不同位置 的一对 相当于无 对于ICG游戏,我们可以将游戏中每一个可能发生的局面表示为一个点.并且若存 ...
- Oracle存储过程语法及编译过程讲解
语法 ? 1 2 3 4 5 6 7 8 9 10 CREATE [ORReplace]PROCEDURE[schema.] procedure_name [(argument [{IN|OUT|IN ...
- 台州OJ 3709: Number Maze (数组越界不报RE,报WA坑爹)
http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=3709 You are playing on ...
- Java文件与io——装饰者模式
意图: 动态地给一个对象添加一些额外的职责.就增加功能来说,Decorator模式相比于生成子类更为灵活.该模式以对客户端透明的方式扩展对象的功能. 适用环境 在不影响其他对象的情况下,以动态.透明的 ...
- HBase 相关API操练(二):Java API
一.HBase Java编程 (1)HBase是用Java语言编写的,它支持Java编程: (2)HBase支持CRUD操作:Create,Read,Update和Delete: (3)Java AP ...
- Laravel项目的结构文章
http://esbenp.github.io/2016/04/11/modern-rest-api-laravel-part-1/
- Struts2初级篇(HelloWorld)
Struts2的工作流程: 从一个高水平角度看,Struts2 是一个MVC拉动的(或MVC2)框架,Struts2 的模型-视图-控制器模式是通过以下五个核心部分进行实现的: 操作(Actions) ...
- Jackson使用手册
引用jar:jackson-core,jackson-databind,jackson-annotations http://central.maven.org/maven2/com/fasterxm ...
- This is your path and you will pursue it with excellence.
This is your path and you will pursue it with excellence.自己选的路就要走出精彩.
- iOS-加载数据的实现-MJRefresh
使用CocoaPods加载三方库: pod 'MJRefresh' MJRefresh类结构图: 具体实现方法和效果图: The drop-down refresh 01-Default self.t ...