- 浏览: 319964 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (299)
- 私人 (3)
- linux (22)
- web service (1)
- java applet (1)
- java (41)
- c# (1)
- socket (1)
- android (10)
- htc (1)
- root (1)
- ftp (3)
- 系统备份 (0)
- jquery (3)
- 图表 (1)
- 实用 (4)
- web (9)
- css (3)
- java applet mplayer (1)
- mplayer (4)
- javascript (8)
- eclipse (1)
- 正则表达式 (1)
- jmf (1)
- tomcat (6)
- 驱动 (1)
- 嵌入式 (1)
- usb (3)
- ffmpeg (1)
- player (1)
- encode (1)
- ajax (1)
- 单纯形复法 (1)
- rom (1)
- ndk (1)
- 打印 (1)
- vs2010 (2)
- myeclipse注册机 (1)
- c++ (5)
- capture (0)
- 串口 (1)
- windows (2)
- mingw (1)
- 网卡 (1)
- 绿色版 (1)
- cywin (1)
- x264 (1)
- 恢复文件 (1)
- servlet init 连数据库 (1)
- 51 单片机 (1)
- 操作系统 (1)
- vlc (3)
- 网线 (1)
- CListBox (1)
- mfc (1)
- setTimer (1)
- 分屏 (1)
- 供求信息 (1)
- 导航 (1)
- 批处理 (1)
- dos (1)
- mysql (5)
- MySQL新建用户 (1)
- demo (1)
- vc (1)
- webservice (1)
- 书签 (1)
- 浏览器 (1)
- spring mvc (1)
- excel (1)
- VPN (0)
- sql (1)
- pdf (3)
- arp (1)
- jsp (2)
- IE (1)
- html (1)
- test (3)
- httpclient (1)
- spring mvc 上传 (1)
- easyui (1)
- mybatis (1)
- spring (1)
- 微信 (1)
- weixin (2)
- pay (2)
- maven (2)
- fastdfs (2)
- ELK (2)
- logstash (1)
- rocketMQ (0)
- jmeter (0)
- 测试 (0)
- softether (0)
- util (0)
最新评论
-
ice24:
ftp client applet -
wuzijingaip:
499700647 写道你好,看了您的文章《ftp clien ...
ftp client applet -
zxcv193188:
感谢楼主
java JMF的使用 -
499700647:
你好,看了您的文章《ftp client aplet》很受启发 ...
ftp client applet -
JoeBaby_:
非常感谢,看文档的时候觉得JMF好难的样子,但是看过代码后思路 ...
java JMF的使用
获取本机IP并发送到指定的Email,本例可直接运行,本例中所用到的Email地址及密码都是可行的
package web.play.rss.util; import java.io.BufferedReader; import java.io.FileOutputStream; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.URL; import java.net.URLConnection; import java.util.ArrayList; import java.util.Date; import java.util.Hashtable; import java.util.List; import java.util.Properties; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.mail.Message; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class GetLocalIP { private int webDepth = 2; private int intThreadNum = 10; private String strHomePage = ""; private String myDomain; private String fPath = "web"; private ArrayList<String> arrUrls = new ArrayList<String>(); private ArrayList<String> arrUrl = new ArrayList<String>(); private Hashtable<String, Integer> allUrls = new Hashtable<String, Integer>(); private Hashtable<String, Integer> deepUrls = new Hashtable<String, Integer>(); private int intWebIndex = 0; private String charset = "GBK"; private String report = ""; private long startTime; private int webSuccessed = 0; private int webFailed = 0; private String searchKey = ""; private List searchedUrl = new ArrayList(); public List searchedKey = new ArrayList(); private boolean searchCurrent = false; private boolean saveUrl = true; private boolean saveSearchKey = true; private boolean debug = false; private void setDebug(boolean _d) { this.debug = _d; } public void setSaveSearchKey(boolean saveSearchKey) { this.saveSearchKey = saveSearchKey; } public void setSaveUrl(boolean saveUrl) { this.saveUrl = saveUrl; } public void setSearchCurrent(boolean searchCurrent) { this.searchCurrent = searchCurrent; } public String getSearchKey() { return searchKey; } public List getSearchedKey() { return searchedKey; } public List getSearchedUrl() { return searchedUrl; } public GetLocalIP(){ } public GetLocalIP(String s, String key) { this.strHomePage = s; this.searchKey = key; } public String getHomePage() { return this.strHomePage; } public GetLocalIP(String s, int i) { this.strHomePage = s; this.webDepth = i; } public synchronized void addWebSuccessed() { webSuccessed++; } public synchronized void addWebFailed() { webFailed++; } public synchronized void addReport(String s) { try { report += s; PrintWriter pwReport = new PrintWriter(new FileOutputStream( "report.txt")); pwReport.println(report); pwReport.close(); } catch (Exception e) { System.out.println("aa"); } } public synchronized String getAUrl() { String tmpAUrl = arrUrls.get(0); arrUrls.remove(0); return tmpAUrl; } public synchronized String getUrl() { String tmpUrl = arrUrl.get(0); arrUrl.remove(0); return tmpUrl; } public synchronized Integer getIntWebIndex() { intWebIndex++; return intWebIndex; } public void getWebByHomePage() { System.out.println("Translate html start ... ..."); if (this.searchCurrent) { searchKey(getContent(this.getHomePage()), this.getSearchKey()); } startTime = System.currentTimeMillis(); this.myDomain = getDomain(); if (myDomain == null) { System.out.println("Wrong input!"); return; } arrUrls.add(strHomePage); arrUrl.add(strHomePage); allUrls.put(strHomePage, 0); deepUrls.put(strHomePage, 1); String tmp = getAUrl(); this.getWebByUrl(tmp, charset, allUrls.get(tmp) + ""); int i = 0; for (i = 0; i < intThreadNum; i++) { new Thread(new Processer(this)).start(); } while (true) { if (arrUrls.isEmpty() && Thread.activeCount() == 1) { long finishTime = System.currentTimeMillis(); long costTime = finishTime - startTime; System.out.println("Translate html Finished !"); /* System.out.println("Start time = " + startTime + " " + "Finish time = " + finishTime + " " + "Cost time = " + costTime + "ms"); // addReport("Start time = " + startTime + " " // + "Finish time = " + finishTime + " " // + "Cost time = " + costTime + "ms" + "\n"); System.out.println("Total url number = " + (webSuccessed + webFailed) + " Successed: " + webSuccessed + " Failed: " + webFailed); */ String strIndex = ""; String tmpUrl = ""; while (!arrUrl.isEmpty()) { tmpUrl = getUrl(); strIndex += "Web depth:" + deepUrls.get(tmpUrl) + " Filepath: " + fPath + "/web" + allUrls.get(tmpUrl) + ".htm" + " url:" + tmpUrl + "\n\n"; } try { PrintWriter pwIndex = new PrintWriter(new FileOutputStream( "fileindex.txt")); pwIndex.println(strIndex); pwIndex.close(); } catch (Exception e) { System.out.println("bb"); } break; } } } private String getContent(String strUrl) { try { URL pageUrl = new URL(strUrl); BufferedReader reader = new BufferedReader(new InputStreamReader( pageUrl.openStream())); String line; StringBuffer pageBuffer = new StringBuffer(); while ((line = reader.readLine()) != null) { pageBuffer.append(line); if (this.debug) { System.out.println(line); } } return pageBuffer.toString(); } catch (Exception e) { } return null; } public void getWebByUrl(String strUrl, String charset, String fileIndex) { try { URL url = new URL(strUrl); URLConnection conn = url.openConnection(); conn.setDoOutput(true); InputStream is = null; is = url.openStream(); BufferedReader bReader = new BufferedReader(new InputStreamReader( is)); StringBuffer sb = new StringBuffer(); String rLine = null; String tmp_rLine = null; while ((rLine = bReader.readLine()) != null) { tmp_rLine = rLine; int str_len = tmp_rLine.length(); if (str_len > 0) { sb.append("\n" + tmp_rLine); if (deepUrls.get(strUrl) < webDepth) getUrlByString(tmp_rLine, strUrl); } tmp_rLine = null; } is.close(); if (!this.searchCurrent) { searchKey(getContent(strUrl), this.getSearchKey()); } if (this.saveUrl) { searchedUrl.add(strUrl); } addWebSuccessed(); } catch (Exception e) { System.out.println("Get web failed! " + strUrl); addWebFailed(); } } public String getDomain() { String reg = "(?<=http\\://[a-zA-Z0-9]{0,100}[.]{0,1})[^.\\s]*?\\.(com|cn|net|org|biz|info|cc|tv)"; Pattern p = Pattern.compile(reg, Pattern.CASE_INSENSITIVE); Matcher m = p.matcher(strHomePage); boolean blnp = m.find(); if (blnp == true) { return m.group(0); } return null; } public void searchKey(String content, String key) { try { Pattern p = Pattern.compile(key, Pattern.CASE_INSENSITIVE); Matcher m = p.matcher(content); boolean blnp = m.find(); while (blnp == true) { String searched = m.group(0); if (this.saveSearchKey && searched != null && !searched.trim().replace(" ", "").equals("null") && !searched.trim().replace(" ", "").equals("")) { searchedKey.add(searched); } blnp = m.find(); } } catch (Exception e) { } } public void getUrlByString(String inputArgs, String strUrl) { String tmpStr = inputArgs; String regUrl = "(?<=(href=)[\"]?[\']?)[http://][^\\s\"\'\\?]*(" + myDomain + ")[^\\s\"\'>]*"; Pattern p = Pattern.compile(regUrl, Pattern.CASE_INSENSITIVE); Matcher m = p.matcher(tmpStr); boolean blnp = m.find(); // int i = 0; while (blnp == true) { if (!allUrls.containsKey(m.group(0))) { arrUrls.add(m.group(0)); arrUrl.add(m.group(0)); allUrls.put(m.group(0), getIntWebIndex()); deepUrls.put(m.group(0), (deepUrls.get(strUrl) + 1)); } tmpStr = tmpStr.substring(m.end(), tmpStr.length()); m = p.matcher(tmpStr); blnp = m.find(); } } public String getInternetIP(String getIpServiceUrl ,String getIpServiceUrl2,String key){ String ip = ""; try{ GetLocalIP gw = new GetLocalIP(getIpServiceUrl, key); gw.setSearchCurrent(true); gw.getWebByHomePage(); List list = gw.getSearchedKey(); for (int i = 0; i < list.size(); i++) { ip += list.get(i).toString() + "~@##" ; } /*if (list.size() == 0) { list = gw.getSearchedUrl(); System.out.println(list.size()); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } }*/ }catch (Exception e) { System.out.println("get ip by first url failed ,try the second ... ..."); GetLocalIP gw = new GetLocalIP(getIpServiceUrl2, key); gw.setSearchCurrent(true); gw.getWebByHomePage(); List list = gw.getSearchedKey(); for (int i = 0; i < list.size(); i++) { ip += list.get(i).toString() + "~@##" ; } } return ip; } public boolean sendIpToMail(String ip){ System.out.println("Email is sending ... ..."); boolean ok = false; try { Properties p = new Properties(); //Properties p = System.getProperties(); p.put("mail.smtp.auth", "true"); p.put("mail.transport.protocol", "smtp"); p.put("mail.smtp.host", "smtp.163.com"); p.put("mail.smtp.port", "25"); //建立会话 Session session = Session.getInstance(p); Message msg = new MimeMessage(session); //建立信息 msg.setFrom(new InternetAddress("fbote_test@163.com")); //发件人 msg.setRecipient(Message.RecipientType.TO, new InternetAddress("fbote_test@163.com")); //收件人 //new InternetAddress("270268201@qq.com")); //收件人 msg.setSentDate(new Date()); // 发送日期 msg.setSubject("Auto:" + ip); // 主题 msg.setText(ip); //内容 // 邮件服务器进行验证 Transport tran = session.getTransport("smtp"); tran.connect("smtp.163.com", "fbote_test", "fbote123456"); // bluebit_cn是用户名,xiaohao是密码 tran.sendMessage(msg, msg.getAllRecipients()); // 发送 System.out.println("Send Email successful !"); ok = true; } catch (Exception e) { e.printStackTrace(); } return ok; } public static void main(String[] args) { // String reg = "((\\d){1,3}\\.(\\d){1,3}\\.(\\d){1,3}\\.(\\d){1,3})|(>\\D{1,4}省\\D{1,5}\\s+\\D{1,4}<)"; // String str = "<h1>ip38.com(ip地址查询)</h1><h2><LI>您的本机IP地址:121.8.15.211 来自:</strong><span id=\"ipad\"> 稍等,查询中.... </span></LI></h2></form> <div id=\"ipadcode\" style=\"display:none\">广东省广州市 电信</div><div align=\"center\"><script language=\"javascript\"> "; // // Pattern p = Pattern.compile(reg, Pattern.CASE_INSENSITIVE); // Matcher m = p.matcher(str); // while(m.find()){ // System.out.println("======"+m.group()); // } String url = "http://www.ip38.com"; String url2 = "http://www.987654.com/ip.asp"; String key = "((\\d){1,3}\\.(\\d){1,3}\\.(\\d){1,3}\\.(\\d){1,3})|(>\\D{1,4}省\\D{1,5}\\s+\\D{1,4}<)"; //key = "(\\d){1,3}\\.(\\d){1,3}\\.(\\d){1,3}\\.(\\d){1,3}"; GetLocalIP gter = new GetLocalIP(); String ip = gter.getInternetIP(url ,url2, key); gter.sendIpToMail(ip); } class Processer implements Runnable { GetLocalIP gw; public Processer(GetLocalIP g) { this.gw = g; } public void run() { // Thread.sleep(5000); while (!arrUrls.isEmpty()) { String tmp = getAUrl(); getWebByUrl(tmp, charset, allUrls.get(tmp) + ""); } } } }
相关推荐
获取本机ip并发到指定邮箱 获取本机ip并发到指定邮箱
java并发编程pdf文档第二部分:Java并发编程实战.pdf、Java多线程编程核心技术.pdf、实战Java高并发程序设计.pdf
Java 模拟线程并发 Java, 模拟线程并发,线程,并发 Java, 模拟线程并发,线程,并发 Java, 模拟线程并发,线程,并发 Java, 模拟线程并发,线程,并发
C++获取本地网卡MAC并发送到指定接口(PHP),注释中带编译命令,实测OK后上传。
自从java创建以来就已经支持并发的理念,如线程和锁。这篇指南主要是为帮助java多线程开发人员理解并发的核心概念以及如何应用这些理念。本文的主题是关于具有java语言风格的Thread、synchronized、volatile,以及...
主要为大家详细介绍了python实现自动获取IP并发到邮箱,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Java后端开发,JUC并发编程Java后端开发,JUC并发编程Java后端开发,JUC并发编程Java后端开发,JUC并发编程Java后端开发,JUC并发编程Java后端开发,JUC并发编程Java后端开发,JUC并发编程Java后端开发,JUC并发编程...
如名称所见,获取外网IP并发送到指定邮箱,这个脚本比较短小,但不如脚本之家提供的au3脚本功能强大,不过每次电脑开机记录一下还是不错的
java并发编程艺术java并发编程艺术java并发编程艺术java并发编程艺术java并发编程艺术
《JAVA并发编程实践》随着多核处理器的普及,使用并发成为构建高性能应用程序的关键。Java 5以及6在开发并发程序中取得了显著的进步,提高了Java虚拟机的性能以及并发类的可伸缩性,并加入了丰富的新并发构建块。在...
java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java...
一个网页抓取的小工具,根据正则表达式抓取网页中指定的信息并发送到指定邮箱
java 并发编程实践java 并发编程实践java 并发编程实践java 并发编程实践java 并发编程实践
java并发编程实战源码 附有本书所有源码,maven 导入 eclipse或idea
Python使用技巧,实战应用开发小系统参考资料,源码参考。经测试可运行。 详细介绍了一些Python框架的各种功能和模块,以及如何使用Python进行GUI开发、网络编程和跨平台应用开发等。 适用于初学者和有经验的开发者...
第7章主要介绍了高并发框架Akka的基本使用方法,并使用Ak:ka框架实现了 个简单的粒子群算法, 模拟超高并发的场景。第8章介绍了使用Eclipse进行多线程调试的方法, 并演示了通过Eclipse进行多线程调试重现ArrayList...
JAVA并发编程艺术 高清pdf : 1.并发变成的挑战 2. java并发机制的底层实现原理 3. java 内存模型 4. java并发编程基础 5.java中的锁。。。。。。。
Java高并发编程,构建并发编程知识体系,提升面试成功率,完整版17章视频教程下载。 本课程将结合大量图示及代码演示,带你掌握多线程并发编程(线程安全,线程调度,线程封闭,同步容器等)与高并发处理思路与手段...
直接就放在书上,你丫有没有良知,书籍是什么,是希望,是神圣的,你们这些译者简直就是在犯罪 ,不过要是英文功底不好,还是建议买本看吧,谁让你英文水平不如他们呢 《JAVA并发编程实践》随着多核处理器的普及,...