【web】项目中如何获取ip地址和端口号

来源:互联网 发布:淘宝卖家怎么用淘宝客推广 编辑:程序博客网 时间:2024/05/19 00:09
<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开始用SSLEnabledsecureValue = 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 "";}


                                             
1 0