- 浏览: 336780 次
- 性别:
- 来自: 广州
-
文章分类
- 全部博客 (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并发到指定邮箱
标题中的“获取网页数据并发送到指定邮箱”指的是利用编程技术从互联网上抓取特定网页上的信息,并通过电子邮件服务将其发送到预设的邮箱地址。这个过程涉及到几个关键的技术领域,包括网页抓取、邮件发送以及可能的...
在现代网络应用中,获取本机的外网 IP 地址是一项常见的需求。例如,在服务器管理、网络安全、分布式系统等场景中,经常需要知道自己的公共 IP 地址。Java 作为一种广泛使用的编程语言,提供了多种方式来实现这一...
Java并发编程是Java开发中的重要领域,特别是在多核处理器和分布式系统中,高效地利用并发可以极大地提升程序的性能和响应速度。以下是对标题和描述中所提及的几个知识点的详细解释: 1. **线程与并发** - **线程*...
### Python 实现自动获取 IP 并发送到邮箱 在当今高度数字化的工作环境中,自动化脚本变得越来越重要。本文详细介绍了一种使用 Python 编写的脚本,该脚本能够自动获取设备(例如树莓派)的 IP 地址,并将其通过...
在VC++环境中,实现向指定IP和端口发送数据或文件以及获取本机IP的功能,主要涉及网络编程、多线程技术以及对话框界面设计。下面将详细解释这些知识点。 1. **网络编程基础**: 网络编程是通过网络在不同设备间...
本篇将详细讲解如何在Java中根据IP地址获取国家和地区信息,并介绍一个附带的IP库。 首先,我们需要明白IP地址与地理位置之间的关联是通过IP库来建立的。IP库通常包含大量的IP段与对应国家、地区的映射关系,以便...
《Java并发编程实战》是Java并发编程领域的一本经典著作,它深入浅出地介绍了如何在Java平台上进行高效的多线程编程。这本书的源码提供了丰富的示例,可以帮助读者更好地理解书中的理论知识并将其应用到实际项目中。...
本项目"JAVA多线程本地IP端口扫描器"是利用Java的强大功能来实现的一种实用工具,它可以帮助我们快速地检测本地计算机的开放端口,这对于网络安全检查、系统调试和性能优化都有重要意义。下面我们将深入探讨这个项目...
Java并发编程是Java开发者必须掌握的关键技能之一,它涉及到如何在多线程环境中高效、安全地执行程序。并发编程能够充分利用多核处理器的计算能力,提高应用程序的响应速度和整体性能。《Java编程并发实战》这本书是...
综合来看,该书不仅适合于对Java并发编程感兴趣的初学者,同样也适合有经验的开发者,作为一本参考资料和实践指南,读者可以通过它来加深对Java并发特性的理解和应用。书中丰富的案例分析和代码示例将有助于读者更...
标题中的“获取外网IP并发送到指定邮箱的vbs代码[已测]”指的是一个使用Visual Basic Script(VBS)编写的脚本,它的主要功能是获取互联网上的外部IP地址,并将该IP地址通过电子邮件发送到用户指定的邮箱。...
最后,Java并发编程还涉及到Future和Callable接口,它们用于异步计算和获取结果。Executor框架中的FutureTask类结合了Future和Runnable,可以在任务完成后获取结果。 总的来说,这份“java并发编程内部分享PPT”...
Java并发编程是软件开发中的一个关键领域,尤其是在大型企业级应用和分布式系统中。通过学习相关的书籍,开发者可以深入理解如何有效地设计和实现高效的多线程应用程序,避免并发问题,如竞态条件、死锁、活锁等。...
本项目名为“IP地址管理器”,采用Java语言进行实现,主要关注于IP地址的过滤、开通和关闭功能。这涉及到网络编程、数据结构、多线程以及可能的数据库操作等多个知识点。 首先,我们需要理解IP地址的基本概念。IP...
《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提供了强大的网络编程API,如java.net包中的Socket和ServerSocket类,以及InetAddress类用于处理IP地址和主机名。这些类使得开发者可以轻松地实现网络通信,同时Java的跨平台特性使得编写的应用程序可以在多种...