【web】项目中如何获取ip地址和端口号
2015-10-27 15:08
417 查看
<pre name="code" class="java">/** * 获取本地IP地址 * @return * @throws UnknownHostException */ public static String getHostAddress() throws UnknownHostException { Enumeration<NetworkInterface> netInterfaces = null; try { netInterfaces = NetworkInterface.getNetworkInterfaces(); while (netInterfaces.hasMoreElements()) { NetworkInterface ni = netInterfaces.nextElement(); Enumeration<InetAddress> ips = ni.getInetAddresses(); while (ips.hasMoreElements()) { InetAddress ip = ips.nextElement(); if (ip.isSiteLocalAddress()) { return ip.getHostAddress(); } } } } catch (Exception e) { logger.error(e.getMessage(), e); } return InetAddress.getLocalHost().getHostAddress(); }
/** * 获取服务端口号 * @return 端口号 * @throws ReflectionException * @throws MBeanException * @throws InstanceNotFoundException * @throws AttributeNotFoundException */ private static String getServerPort(boolean secure) throws AttributeNotFoundException, InstanceNotFoundException, MBeanException, ReflectionException { MBeanServer mBeanServer = null; if (MBeanServerFactory.findMBeanServer(null).size() > 0) { mBeanServer = (MBeanServer)MBeanServerFactory.findMBeanServer(null).get(0); } if (mBeanServer == null) { logger.debug("调用findMBeanServer查询到的结果为null"); return ""; } Set<ObjectName> names = null; try { names = mBeanServer.queryNames(new ObjectName("Catalina:type=Connector,*"), null); } catch (Exception e) { return ""; } Iterator<ObjectName> it = names.iterator(); ObjectName oname = null; while (it.hasNext()) { oname = (ObjectName)it.next(); String protocol = (String)mBeanServer.getAttribute(oname, "protocol"); String scheme = (String)mBeanServer.getAttribute(oname, "scheme"); Boolean secureValue = (Boolean)mBeanServer.getAttribute(oname, "secure"); Boolean SSLEnabled = (Boolean)mBeanServer.getAttribute(oname, "SSLEnabled"); if (SSLEnabled != null && SSLEnabled) {// tomcat6开始用SSLEnabled secureValue = true;// SSLEnabled=true但secure未配置的情况 scheme = "https"; } if (protocol != null && ("HTTP/1.1".equals(protocol) || protocol.contains("http"))) { if (secure && "https".equals(scheme) && secureValue) { return ((Integer)mBeanServer.getAttribute(oname, "port")).toString(); } else if (!secure && !"https".equals(scheme) && !secureValue) { return ((Integer)mBeanServer.getAttribute(oname, "port")).toString(); } } } return ""; }
相关文章推荐
- 授权普通非DBA用户可以有权限查看执行计划的方法
- Flex+BlazeDs+Java的教程及Demo
- 数据库:替代变量笔记
- AD Site Design and Auto Site Link Bridging, or Bridge All Site Links (BASL)
- yaw roll pitch matrix
- Log的使用技巧——解决字典和和数组的直接打印时问题
- 解析UML九种图
- nagios 监控 linux主机的信息
- linux c 字符串到time_t时间转换
- leetcode 268 : Missing Number
- QT5入门之18 -文件读写
- 用Picasso的RequestHandler进行自定义加载的方法
- 安卓开发中用eclipse提交代码到github遇到的rejected-non-fast-forward问题
- Mongodb3.0配置文件
- SharePoint 2010 IT Professional -- Recycle Bin
- IntelliJ Idea 常用快捷键列表
- SQL 常用
- 推荐系统的总结,主要是讲述矩阵分解在协同滤波系统中的作用
- Android面试题
- 动态视图