⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iptools.java

📁 在用户登陆的时候我们往往要记录登陆的ip地址 此类就是获取ip地址的方法
💻 JAVA
字号:
package common.songbing;

import java.io.BufferedReader;
import java.io.InputStreamReader;

import javax.servlet.http.HttpServletRequest;

import org.apache.log4j.Logger;

/**
 * 此类是关于J2EE客户端请求时的IP地址
 * 
 * @author 宋兵 mail:songbing0520@126.com tel: 15056088266
 */
public class IPTools {
	private static Logger logger = Logger.getLogger(IPTools.class);
	/**
	 * 从HttpServletRequest中得到请求的IP地址
	 */
	public String getIP(HttpServletRequest request) {
		String realIP = request.getHeader("x-forwarded-for");// 代理服务器会在转发时将头信息放在头信息中
		System.out.println(realIP);
		if (realIP != null && realIP.length() != 0) {
			while ((realIP != null) && (realIP.equals("unknown"))) {// 如果有x-forwarded-for信息,并且等于unknown则继续读
				realIP = request.getHeader("x-forwarded-for");
			}
		}
		if (realIP == null || realIP.length() == 0) {
			realIP = request.getHeader("Proxy-Client-IP");
		}
		if (realIP == null || realIP.length() == 0) {
			realIP = request.getHeader("WL-Proxy-Client-IP");
		}
		if (realIP == null || realIP.length() == 0) {
			realIP = request.getRemoteAddr();
		}
		return realIP;
	}
	/**
	 * ping IP地址,打印相关信息
	 */
	public void ping(String ip) {
		if(!this.checkIP(ip)){
			return;
		}
		ip = "ping " + ip;
		String line = null;
		try {
			Process pro = Runtime.getRuntime().exec(ip);
			BufferedReader buf = new BufferedReader(new InputStreamReader(pro
					.getInputStream()));
			while ((line = buf.readLine()) != null){
				System.out.println(line);
			}
		} catch (Exception ex) {
			logger.error("通信异常", ex);
		}
	}
	/**
	 * 校验IP地址是否合法
	 * @param ip
	 * @return true=合法<br>false=不合法
	 */
	public boolean checkIP(String ip) {
		String[] ipNum = ip.split("[.]");
		for (int i = 0; i < ipNum.length; i++) {
			try {
				int num = Integer.parseInt(ipNum[i]);
				if(num<0||num>255){
					return false;
				}
			} catch (Exception e) {
				logger.error("IP地址中不能有非数字字符", e);
				return false;
			}
		}
		return true;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -