新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
import java.io.*;
创新互联于2013年成立,公司以成都网站设计、做网站、系统开发、网络推广、文化传媒、企业宣传、平面广告设计等为主要业务,适用行业近百种。服务企业客户超过千家,涉及国内多个省份客户。拥有多年网站建设开发经验。为企业提供专业的网站建设、创意设计、宣传推广等服务。 通过专业的设计、独特的风格,为不同客户提供各种风格的特色服务。
import java.util.*;
import java.net.InetAddress;
public class Ip{
static public HashMap ping; //ping 后的结果集
public HashMap getPing(){ //用来得到ping后的结果集
return ping;
}
//当前线程的数量, 防止过多线程摧毁电脑
static int threadCount = 0;
public Ip() {
ping = new HashMap();
}
public void Ping(String ip) throws Exception{
//最多30个线程
while(threadCount30)
Thread.sleep(50);
threadCount +=1;
PingIp p = new PingIp(ip);
p.start();
}
public void PingAll() throws Exception{
//首先得到本机的IP,得到网段
InetAddress host = InetAddress.getLocalHost();
String hostAddress = host.getHostAddress();
int k=0;
k=hostAddress.lastIndexOf(".");
String ss = hostAddress.substring(0,k+1);
for(int i=1;i =255;i++){ //对所有局域网Ip
String iip=ss+i;
Ping(iip);
}
//等着所有Ping结束
while(threadCount0)
Thread.sleep(50);
}
public static void main(String[] args) throws Exception{
Ip ip= new Ip();
ip.PingAll();
java.util.Set entries = ping.entrySet();
Iterator iter=entries.iterator();
String k;
while(iter.hasNext()){
Map.Entry entry=(Map.Entry)iter.next();
String key=(String)entry.getKey();
String value=(String)entry.getValue();
if(value.equals("true"))
System.out.println(key+"--"+value);
}
}
class PingIp extends Thread{
public String ip; // IP
public PingIp(String ip){
this.ip=ip;
}
public void run(){
try{
Process p= Runtime.getRuntime().exec ("ping "+ip+ " -w 300 -n 1");
InputStreamReader ir = new InputStreamReader(p.getInputStream());
LineNumberReader input = new LineNumberReader (ir);
//读取结果行
for (int i=1 ; i 7; i++)
input.readLine();
String line= input.readLine();
if (line.length() 17 || line.substring(8,17).equals("timed out"))
ping.put(ip,"false");
else
ping.put(ip,"true");
//线程结束
threadCount -= 1;
}catch (IOException e){}
}
}
}
在web.xml中加入获取访客的filter,然后获取IP地址,查询数据库此IP是否有记录,如果无记录,则进行访问计数+1,并更新数据库相应数据,这样就可以达到计算次数的操作了
大约要三张表
A表(地区名):
地区代码 地区名 总访问次数
1 广东省 0
2 江苏省 0
...
B表(日访问表)
地区代码 访问时间 日访问次数
1 20131224 0
8 20131224 0
C表(ip来源表)
序号 来访IP 地区代码 时间
处理流程基本上就是
1、先取用户ip,从ip库中查询出用户地区(这种代码随处可以找到,比如)一般就是纯真ip库,有了地区后,从A表中查出地区代码
2、向C表中添加记录
3、然后查一下B表有没有当日该地区记录,如果没有就在B表中新增一条,如果有就将B表对应的次数加1,然后A表中对应地区代码次数统计也加1
然后比如你要查2013年12月24日的各地区统计就可以是
select * from a,b where a.地区代码=b.地区代码 and b.访问时间=20131224