- 浏览: 299449 次
文章分类
最新评论
-
流年末年:
那四个参数还是没看懂.....能不能解释下showPassst ...
我写的密码强度验证方法(原创) -
kingcs2008:
// 验证pws.jsshowPassstrength(&qu ...
我写的密码强度验证方法(原创) -
h957355152:
请问博主这个怎么用呢?我直接放到jsp里面调用showPass ...
我写的密码强度验证方法(原创) -
qq_15138059:
我写的全国省市县三级联动菜单,拿出来和大家分享了(原创) -
valenon:
评论呢?从MAIL FROM命令开始貌似就出错了:500 Er ...
如何发送伪造的电子邮件
这是我整理的一个ip地址查询数据库,希望能对大家有点帮助,我已经在我的项目里用了。
经过测试,在我的机器上查询一个ip大约耗时0.016秒,查询结果与ip138大部分一致
使用方法:
1.导入下面的sql脚本(本人是从mysql导出来的)
2.参照下面程序中得search方法,数据库相关参数记得改成你自己的,加上驱动包
经过测试,在我的机器上查询一个ip大约耗时0.016秒,查询结果与ip138大部分一致
使用方法:
1.导入下面的sql脚本(本人是从mysql导出来的)
2.参照下面程序中得search方法,数据库相关参数记得改成你自己的,加上驱动包
import java.io.*; import java.sql.*; import java.util.HashMap; import java.util.Map; import java.util.Random; public class Test { private static Connection conn; private static String driver = "com.mysql.jdbc.Driver"; private static String ulr = "jdbc:mysql://数据库ip:3306/数据库名"; private static String username = "数据库用户名"; private static String pwd = "数据库密码"; static { try { Class.forName(driver); conn = DriverManager.getConnection(ulr, username, pwd); conn.setAutoCommit(false); } catch (ClassNotFoundException e) { e.printStackTrace(); System.exit(-1); } catch (SQLException e) { e.printStackTrace(); System.exit(-1); } } /** * @param args * @throws IOException * @throws SQLException */ public static void main(String[] args) throws IOException, SQLException { for (int i = 0; i < 50; i++) { testSearch(); } } private static void testSearch() throws SQLException { String ip = getRandIp(); String[] array = search(ip); if (array == null || array.length == 0) System.out.println("ip=" + ip + ",返回结果:null,null"); if (array.length == 1) System.out.println("ip=" + ip + ",返回结果:" + array[0] + ",null"); if (array.length == 2) System.out.println("ip=" + ip + ",返回结果:" + array[0] + "," + array[1]); } /** * 搜索ip地址所在城市的方法 * @param ip * @return * @throws SQLException */ private static String[] search(String ip) throws SQLException { long ipLong = parseLong(ip); String sql = "select * from ip_address where min_ip<=? order by min_ip desc LIMIT 1;"; PreparedStatement ps = conn.prepareStatement(sql); ps.setLong(1, ipLong); ResultSet rs = ps.executeQuery(); Map<String, Object> minMap = null; if (rs.next()) { minMap = new HashMap<String, Object>(); minMap.put("min_ip", rs.getLong("min_ip")); minMap.put("max_ip", rs.getLong("max_ip")); minMap.put("city", rs.getString("city")); minMap.put("line", rs.getString("line")); } rs.close(); ps.close(); sql = "select * from ip_address where max_ip<=? order by max_ip desc LIMIT 1;"; ps = conn.prepareStatement(sql); ps.setLong(1, ipLong); rs = ps.executeQuery(); Map<String, Object> maxMap = null; if (rs.next()) { maxMap = new HashMap<String, Object>(); maxMap.put("min_ip", rs.getLong("min_ip")); maxMap.put("max_ip", rs.getLong("max_ip")); maxMap.put("city", rs.getString("city")); maxMap.put("line", rs.getString("line")); } rs.close(); ps.close(); if (minMap == null && maxMap == null) return null; else if (minMap == null && maxMap != null) return new String[] { getProperty(maxMap, "city"), getProperty(maxMap, "line") }; else if (minMap != null && maxMap == null) return new String[] { getProperty(minMap, "city"), getProperty(minMap, "line") }; else if (minMap != null && maxMap != null) { long min_ip = Long.parseLong(minMap.get("min_ip").toString()); long max_ip = Long.parseLong(maxMap.get("max_ip").toString()); if (Math.abs(min_ip - ipLong) <= Math.abs(max_ip - ipLong)) return new String[] { getProperty(minMap, "city"), getProperty(minMap, "line") }; else return new String[] { getProperty(maxMap, "city"), getProperty(maxMap, "line") }; } else return null; } private static String getProperty(Map<String, Object> map, String key) { Object value = map.get(key); return value == null ? null : value.toString(); } private static String getRandIp() { Random random = new Random(); return random.nextInt(256) + "." + random.nextInt(256) + "." + random.nextInt(256) + "." + random.nextInt(256); } private static long parseLong(String ipStr) { String[] ipArray = ipStr.split("\\."); long sum = 0; final long[] weights = { 256 * 256 * 256, 256 * 256, 256, 1 }; for (int i = 0; i < 4; i++) { if (ipArray[i].trim().length() == 0) return -1; if (!ipArray[i].matches("^\\d+$")) return -1; int n = Integer.parseInt(ipArray[i]); if (n > 255) n = 255; if (n < 0) n = 0; sum += weights[i] * n; } return sum; } }
- 世界ip数据表.rar (5.1 MB)
- 下载次数: 119
发表评论
-
java正则表达式高级用法:转换驼峰标示
2012-06-26 16:47 5749String source = "LastLog ... -
你会做Web上的用户登录功能吗?(转)
2012-06-25 13:22 1322Web上的用户登录功能应 ... -
使用pager-taglib.jar实现的分页技术
2012-06-24 02:34 876//1.导入pager-taglib.jar包; / ... -
我写的验证码生成方案,可防止绝大多数机械识别。
2012-06-20 14:59 2361web.xml <!DOCTYPE web-app ... -
如何在myeclipse中使用maven?
2012-06-11 14:22 168041.下载maven,解压到D盘ma ... -
安装subclipse, MyEclipse8 SVN插件
2012-06-09 22:39 910安装subclipse, MyEclipse8 SVN插件 ... -
PDF生成器
2012-05-28 02:53 817我自己写的一个pdf生成器,能导出百度博客为PDF -
我的自动投票器
2012-04-17 13:58 1264自动投票器,支持windows的32位机器 下面的压缩包是编 ... -
list,set,map,数组间的相互转换(转载)
2012-03-16 16:29 28201.list转set Java代码 ... -
一个给pojo生成hashcode、equals、toString等方法的工具类
2012-03-06 09:52 4218一个给pojo生成hashcode、equals、toStri ... -
ehcache的用法
2012-02-13 22:13 0Spring ... -
使用ehcache来缓存页面
2012-02-13 22:08 767关于缓存的话题,在坛子里已经有很多讨论,简单的来说,如果一个应 ... -
java笔记:自己动手写javaEE框架(二)--业务层Service以及Service单元测试
2012-02-13 00:55 0前一篇博文里有三 ... -
struts+spring+hibernate的web应用<四> Web层代码编写(2)
2012-02-13 00:50 0接着就是写资源文件了。 在 com.game. ... -
struts+spring+hibernate的web应用<四> Web层代码编写(1)
2012-02-13 00:49 1007前面的文章: ... -
struts+spring+hibernate的web应用<三> Service层代码编写
2012-02-13 00:46 822前面的文章: ... -
struts+spring+hibernate的web应用<二> Dao层代码编写
2012-02-13 00:45 828前一篇文章 (struts+spring ... -
struts+spring+hibernate的web应用<一> 架构搭建
2012-02-13 00:44 746许久没有些文章了,现 ... -
ehcache缓存管理
2012-02-12 23:52 946EHCache 是一个纯java的,在Hibernate2 ... -
检测一个字符串是否在jvm的常量池中(原创)
2012-01-11 09:07 2118检测一个字符串是否在jvm的常量池中 public ...
相关推荐
QQWryLocation IP地址信息的实体类 本代码包下载分是 5 分,有点高了,呵呵~~~ 但保证绝对是作者原创作品,物有所值,绝对不是从网上随便找点东西骗分哦,请支持。 如果代码中存在 BUG 请反馈于 panxiaofeng@126....
通过IP138的IP数据库获得其IP,这个是我的原创模块
ip地址扫描,发送邮箱。 ResizableLib 测试开源界面库Resizable。 RsPicture 自定义了一个图片库,然后引用测试。 SimplePlayer 简单的媒体播放源码。 Skin_Combo_Box_demo 自绘Combox控件的实例。 SkinList_...
ip地址扫描,发送邮箱。 ResizableLib 测试开源界面库Resizable。 RsPicture 自定义了一个图片库,然后引用测试。 SimplePlayer 简单的媒体播放源码。 Skin_Combo_Box_demo 自绘Combox控件的实例。 SkinList_...
ip地址扫描,发送邮箱。 ResizableLib 测试开源界面库Resizable。 RsPicture 自定义了一个图片库,然后引用测试。 SimplePlayer 简单的媒体播放源码。 Skin_Combo_Box_demo 自绘Combox控件的实例。 SkinList_...
ip地址扫描,发送邮箱。 ResizableLib 测试开源界面库Resizable。 RsPicture 自定义了一个图片库,然后引用测试。 SimplePlayer 简单的媒体播放源码。 Skin_Combo_Box_demo 自绘Combox控件的实例。 SkinList_...
ip地址扫描,发送邮箱。 ResizableLib 测试开源界面库Resizable。 RsPicture 自定义了一个图片库,然后引用测试。 SimplePlayer 简单的媒体播放源码。 Skin_Combo_Box_demo 自绘Combox控件的实例。 SkinList_...
ip地址扫描,发送邮箱。 ResizableLib 测试开源界面库Resizable。 RsPicture 自定义了一个图片库,然后引用测试。 SimplePlayer 简单的媒体播放源码。 Skin_Combo_Box_demo 自绘Combox控件的实例。 SkinList_...
型强制转换,确保数据写入和查询更安全。 缓存机制:系统支持包括文件方式、APC、Db、Memcache、Shmop、Sqlite、Redis、 Eaccelerator和Xcache在内的动态数据缓存类型,以及可定制的静态缓存规则,并 提供了快捷...
4.可以记录来访客的来源IP地址和来源页面信息,在线人数。 5.每月、每天和每小时的访问数据统计,回头率统计,每个网页浏览统计。 6.搜索引擎统计,还可以自己定义搜索引擎,搜索关键字统计。 7.注册用户找回密码功能...
乘风广告联盟系统适用普通广告联盟、手机广告联盟等,支持CPC、CPV、CPA、CPS等计费方式,支持富媒体广告、混合广告、直链广告等各类广告效果并开放接口修改广告效果代码,默认即支持程序缓存、数据库缓存、数据库...
12.可整合其它任意程序下的用户做推广,包括任意语言和数据库类型,商城、论坛系统等等,并可以用户ID或用户名、Email保持相同统一,接口丰富 13.程序核心使用数据库存储过程处理,银行级的负载和安全性能,无需...
18、支持封IP和评论关键词过滤. 19、使用报表组件,可以方便直观地统计网站数据. 20、支持广告功能:可以选择 代码.文字.图片.Flash等方式发布广告. 铁人科技网络简介: 铁人网页设计团队是一家专业的互联网...
小王许愿墙(仿QQ爱墙)是爱墙网原创开发的简洁、安全、稳定、高效的ASP祝福墙(许愿墙)程序。 小王许愿墙(仿QQ爱墙) 1.6 更新内容: 采用"DIV CSS"网页标准构建,代码十分简洁; 更新整个页面使其更加酷炫; ...
网站IP地址:一般没有特殊要求的,选择"全部未分配"就可以了。 端口:一般使用默认值80 主机头:空白 5、选择你的网站文件存放的路径,然后点击 下一步 >。 6、把 <读取>和运行脚本(如ASP)> 都选中,然后点击 下...
18、支持封IP和评论关键词过滤. 19、使用报表组件,可以方便直观地统计网站数据. 20、支持广告功能:可以选择 代码.文字.图片.Flash等方式发布广告. 官方网址:http://www.diyhi.net/ 程序更新地址: ...
小麦企业网站展示系统介绍: 一、安装使用 将xiaomai.sql导入数据库 二、后台登录 ... config.php 配置文件可根据自行需要修改,IP地址... 3、原创程序首发,感谢咨询和反溃 11月5日更新: 1、新增支持底部版
web通过子网IP地址访问service,VM仅向公网暴露80端口,后台service无法从公网访问两个Docker容器所运行的应用(blog-web和blog-service)都可以访问托管的Azure SQL database、Azure Storage blob和SendGrid ...