JAVA 获取指定网址的IP地址 实例
2014-01-03 16:35
357 查看
如今买票是一大难事,在高峰时段 打开12306网站,慢的像蜗牛,想到以前用修改hosts文件来登录Google(Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统再会将网址提交DNS域名解析服务器进行IP地址的解析。),那么我也来试试这种方法来登录下12306,用搜索找到几个解析IP的网站,试了下,果然奏效(现在).为了方便使用,我把IP写到本地文件.
下面是JAVA的相关代码,显示把IP写到D盘的ip.txt中.
下面是JAVA的相关代码,显示把IP写到D盘的ip.txt中.
package Demo; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.RandomAccessFile; import java.net.HttpURLConnection; import java.net.URL; import java.text.SimpleDateFormat; import java.util.Date; import java.util.regex.Matcher; import java.util.regex.Pattern; public class testREG_IP { // 指定文件路径和名称 private static String path = "D:/ip.txt"; private static File fileName = new File(path); private static String readStr = ""; private static BufferedReader bufferReader; public static void main(String[] args) throws IOException { //网址 String path = "http://www.17ce.com/site/http/201401_17ccef99e3d1ca9c19aea3c3d19136dc.html"; //正则表达式,过滤IP格式 String regex = "\\d+\\.\\d+\\.\\d+\\.\\d+"; String ipText = getWeb(path, regex); createTxtFile(); readTxtFile(); System.out.println(ipText); writeTxtFile(ipText); } /** * 创建文件 * * @throws IOException */ private static void createTxtFile() throws IOException { if (!fileName.exists()) { fileName.createNewFile(); System.err.println(fileName + " 已创建!"); } } /** * 读文件 */ public static String readTxtFile() { String read; FileReader fileread; try { fileread = new FileReader(fileName); bufferReader = new BufferedReader(fileread); try { while ((read = bufferReader.readLine()) != null) { readStr = readStr + read + "\r\n"; } } catch (IOException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { e.printStackTrace(); } return readStr; } /** * 写文件 */ public static void writeTxtFile(String newStr) throws IOException { // 追加内容 String filein = newStr + "\r\n" + readStr + "\r\n"; RandomAccessFile mm = null; try { mm = new RandomAccessFile(fileName, "rw"); mm.writeBytes(filein); System.out.println("写入成功"); } catch (IOException e1) { System.out.println("写入失败"); e1.printStackTrace(); } finally { if (mm != null) { try { mm.close(); } catch (IOException e2) { System.out.println("写入失败"); e2.printStackTrace(); } } } } //获取ip public static String getWeb(String ip, String regex) { URL url; final StringBuffer stringBuffer = new StringBuffer(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String time = formatter.format(new Date()); stringBuffer.append("\r\n----------" + time + "-----------\r\n\r\n\r\n"); try { url = new URL(ip); HttpURLConnection urlConnection = (HttpURLConnection) url .openConnection(); urlConnection.connect(); InputStream in = urlConnection.getInputStream(); byte[] data = new byte[1024]; while (in.read(data) > 0) { // 读取流文件 String tempString = new String(data); Matcher m = Pattern.compile(regex).matcher(tempString); while (m.find()) { stringBuffer.append(m.group()); stringBuffer.append("\r\n"); } } } catch (IOException e) { e.printStackTrace(); } return stringBuffer.toString(); } }
相关文章推荐
- JAVA 获取指定网址的IP地址 实例
- Java 实例 - 获取指定主机的IP地址
- C#获取指定IP地址的数据库所有数据库实例名
- 爬虫实例3——获取指定IP地址的物理位置
- java获取指定的主机的IP地址
- 使用Java获取IP地址实例
- Java 以指定日期时间格式获取当前时间、以及每隔一秒刷新一次的方法------附带实例
- java下linux和window通用的获取指定网段的本地ip地址(NetworkInterface)
- 使用Java获取IP地址实例
- java 获取指定的信息
- Java日期操作方法工具类实例【包含日期比较大小,相加减,判断,验证,获取年份等】
- Java获取IP地址:request.getRemoteAddr()警惕
- Java获取本地IP地址
- 【java】获取指定文件夹大小
- 使用JAVA获取指定网页内容
- java获取任意指定日期后前后任一一天
- java获取指定和当前月第一天和最后一天,上个月第一天和最后一天
- Javascript和Java获取各种form表单信息的简单实例
- Java 实例 - 获取当前线程名称
- java获取本地IP地址,java获取本地多张网卡IP