判断请求URL中是IP还是域名
来源:互联网 发布:linux临时设置环境变量 编辑:程序博客网 时间:2024/03/29 05:03
背景
服务运行在内网,与本服务交互的家伙,依靠特定的Cookie来决定某个状态。
问题就来了,Cookie的域要么基于IP要么基于域名,考虑到跨越:
- 如果基于IP,两个服务必须运行在同一服务器上
- 如果基于域名,内网需部署DNS服务器或者自己手动改hosts文件
反正两者都有些崩溃,决定两个都支持,酌情处理。
需求
- 当用户通过IP访问时,Cookie的Domain为IP地址
- 当用户通过域名访问时,Cookie的Domain为二级域名
Eg: 访问(test1.test2.company.com时,Domain为company.com
解决方案
依据正则表达式写了段代码
/* 正则,粗略的匹配下IP还是域名,代码能跑这的,格式什么的都合法 */ public static String PATTERN_L2DOMAIN = "\\w*\\.\\w*:"; public static String PATTERN_IP = "(\\d*\\.){3}\\d*"; public static String getCookieDomain(String url) { /* 以IP形式访问时,返回IP */ Pattern ipPattern = Pattern.compile(PATTERN_IP); Matcher matcher = ipPattern.matcher(url); if (matcher.find()) { System.out.println("[HttpUtil][getCookieDomain] match ip."); return matcher.group(); } /* 以域名访问时,返回二级域名 */ Pattern pattern = Pattern.compile(PATTERN_L2DOMAIN); matcher = pattern.matcher(url); if (matcher.find()) { System.out.println("[HttpUtil][getCookieDomain] match domain."); String domain = matcher.group(); /* 裁剪一下是因为连着冒号也匹配进去了,唉~ */ return domain.substring(0, domain.length() - 1); } return null; }
0 0
- 判断请求URL中是IP还是域名
- 怎么样判断用户输入的是一个域名还是一个IP地址呢?
- 在php中判断一个网页请求是ajax请求还是普通请求
- 在php中,如何判断一个请求是ajax请求还是普通请求? jquery
- 在php中判断一个请求是ajax请求还是普通请求的方法
- js判断请求是http还是https
- PHP判断一个请求是AJAX请求还是普通请求
- PHP判断一个请求是AJAX请求还是普通请求
- PHP判断一个请求是Ajax请求还是普通请求
- PHP判断一个请求是Ajax请求还是普通请求
- 判断机器IP是公网ip还是内网ip
- 判断机器IP是公网ip还是内网ip
- 判断某个IP是公共IP还是保留IP
- js 判断是手机请求还是pc请求
- Javascript判断是Android请求还是IOS请求
- 域名、IP、URL
- Android中 判断是平板还是手机
- 阿里云Ecs绑域名的时候是绑公网IP地址还是内网ip?
- java--xiti
- Enum_枚举笔记
- BZOJ 1024: [SCOI2009]生日快乐
- ios 中心放大动画
- 20分钟自动安装kilo版本openstack开发环境
- 判断请求URL中是IP还是域名
- ios高级工程师开发面试题
- 在Linux里设置环境变量的方法(export PATH)
- 【11/02】 iOS开发成长之路,【控件初始化方法封】
- -Dmaven.multiModuleProjectDirectory system propery is not set.IDEA14 中Maven报错
- 利用C++优势快速打完最长不下降子序列
- Windows远程到Linux
- AbstractList 抽象类 源代码
- Android源码分析-资源加载机制解析