首页 / 邮件 / Java获取Ip发送邮件
Java获取Ip发送邮件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java获取Ip发送邮件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3806字,纯文字阅读大概需要6分钟。
内容图文
![Java获取Ip发送邮件](/upload/InfoBanner/zyjiaocheng/835/92ab75eafebb4666b9db0d42a4d63cbc.jpg)
import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import javax.servlet.http.HttpServletRequest; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.regex.Matcher; import java.util.regex.Pattern; @Slf4j public class IpUtil { public final static String ERROR_IP = "127.0.0.1"; public final static Pattern pattern = Pattern. compile("(2[5][0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})"); /** * 取外网IP * * @param request * @return */ public static String getRemoteIp(HttpServletRequest request) { String ip = request.getHeader("x-real-ip"); if (ip == null) { ip = request.getRemoteAddr(); } //过滤反向代理的ip String[] stemps = ip.split(","); if (stemps != null && stemps.length >= 1) { //得到第一个IP,即客户端真实IP ip = stemps[0]; } ip = ip.trim(); if (ip.length() > 23) { ip = ip.substring(0, 23); } return ip; } /** * 获取用户的真实ip * * @param request * @return */ public static String getUserIP(HttpServletRequest request) { // 优先取X-Real-IP String ip = request.getHeader("X-Real-IP"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("x-forwarded-for"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); if ("0:0:0:0:0:0:0:1".equals(ip)) { ip = ERROR_IP; } } if ("unknown".equalsIgnoreCase(ip)) { ip = ERROR_IP; return ip; } int pos = ip.indexOf(','); if (pos >= 0) { ip = ip.substring(0, pos); } return ip; } public static String getLastIpSegment(HttpServletRequest request) { String ip = getUserIP(request); if (ip != null) { ip = ip.substring(ip.lastIndexOf('.') + 1); } else { ip = "0"; } return ip; } public static boolean isValidIP(HttpServletRequest request) { String ip = getUserIP(request); return isValidIP(ip); } /** * 判断我们获取的ip是否是一个符合规则ip * * @param ip * @return */ public static boolean isValidIP(String ip) { if (StringUtils.isEmpty(ip)) { log.debug("ip is null. valid result is false"); return false; } Matcher matcher = pattern.matcher(ip); boolean isValid = matcher.matches(); log.debug("valid ip:" + ip + " result is: " + isValid); return isValid; } public static String getLastServerIpSegment() { String ip = getServerIP(); if (ip != null) { ip = ip.substring(ip.lastIndexOf('.') + 1); } else { ip = "0"; } return ip; } public static String getServerIP() { InetAddress inet; try { inet = InetAddress.getLocalHost(); String hostAddress = inet.getHostAddress(); return hostAddress; } catch (UnknownHostException e) { e.printStackTrace(); } return "127.0.0.1"; } }
发送邮件:
import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import lombok.ToString; import java.util.Set; @Getter @Setter @ToString @Builder @NoArgsConstructor @AllArgsConstructor public class Mail { private String subject; private String message; private Set<String> receivers; }
import com.mmall.beans.Mail; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.commons.mail.EmailException; import org.apache.commons.mail.HtmlEmail; @Slf4j public class MailUtil { public static boolean send(Mail mail) { // TODO String from = ""; int port = 25; String host = ""; String pass = ""; String nickname = ""; HtmlEmail email = new HtmlEmail(); try { email.setHostName(host); email.setCharset("UTF-8"); for (String str : mail.getReceivers()) { email.addTo(str); } email.setFrom(from, nickname); email.setSmtpPort(port); email.setAuthentication(from, pass); email.setSubject(mail.getSubject()); email.setMsg(mail.getMessage()); email.send(); log.info("{} 发送邮件到 {}", from, StringUtils.join(mail.getReceivers(), ",")); return true; } catch (EmailException e) { log.error(from + "发送邮件到" + StringUtils.join(mail.getReceivers(), ",") + "失败", e); return false; } } }
内容总结
以上是互联网集市为您收集整理的Java获取Ip发送邮件全部内容,希望文章能够帮你解决Java获取Ip发送邮件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。