ROS如何统计内网在线人数
- 格式:doc
- 大小:21.50 KB
- 文档页数:1
如何实现网页在线人数统计2001-07-12 09:57:41在浏览网页的时侯,常常可以看见一些“当前网站上的人数是XXX人”的在线人数同计。
如何用ASP来做一个呢?首先,分析一下它的做法,一般来说,这些线上人数统计都是指一个时段内的访客人数统计。
比如(5分钟内,10分钟内)而这个时间的长短,是由设计者设定的。
在这个时段内同计各个不同IP的访客总数,就可以得出当前的线上人数了,但这里有一个精确问题需要解决,至于用什么办法来精确地统计,那就是各人不同的做法了,比如可以用自动提交的页面,隔一段时间读取COOKIES等等,而在ASP中,有一个更好的技巧,就是使用session对象来统计,这里介绍一下global.asa这个文件,这是一个很重要的一个文件,请看看它的结构。
< SCRIPT LANGUAGE="VBScript" RUNA T="Server" >Sub Session_OnStartEnd SubSub Session_OnEndEnd Subsub Application_OnStardEnd Subsub Application_OnEndEnd Sub< /SCRIPT >当有一个会话发生时(用户浏览网页,向Web服务器发出请求)那么,如果自服务器启动后第一个用户的话,就会同时发生Application_OnStard和Session_OnStart这两个事件,之后,再有别的用户发出请求的话,就只发生Session_OnStart这个事件,而session的生存期是多长,是可以设定的,Session.timeout=X(分钟)好了,有了这个很好用的方法,我们就能准确地统计出在线人数了,而人数总计是用一个application变量来保存,当在第一个会话开始时,在Application_OnStard事件中放置一条清空计数器的语句application("online")=0,然后,在Session_OnStart事件中,放置一条增加在线人数的语句application("online")=application("online")+1,而在Session_OnEnd事件相应地放一条减少在线人数的语句,令计数值减一。
PCC实验一、基本配置,使网络能够正常连通1.pppoe拨号:拨通五个帐号PPPOE client的连接状态,已连接设备NAT:5个接口出去都做NAT创建一个bridge,把其他局域网口添加到bridge中。
添加其他局域网口到bridge中DHCP 服务器设置(局域网自动获取IP地址)局域网的网段为192.168.10.0/24把192.168.10.254作为内网的网关设置网关的地址,接口添加到bridge1上一般我们用DHCP setup来自动设置DHCP server这种设置比较简单快速路由配置:所有的基本配置都设置好了,局域网可以正常上网了,但是为了实现更好的网络环境,我们需要做更好的策略。
这就需要使用PCC了,下面就看看PCC怎么做的吧。
二、PCC的配置Mangle标记标记内网地址为192.168.10.0的五条线路的连接标记标记第一条连接:同理:配置剩余的4调链路:5/1,c2; 5/2.c3; 5/3,c4; 5/4,c5.从连接中提取路由标记:从连接里提取路由标记标记第一条连接c1,命令为R1同理:提出其他4调路由命名为R2,R3,R4,R5.标记连接,的命名配置方式为:[admin@MikroTik] /ip firewall mangle> printFlags: X - disabled, I - invalid, D - dynamic0 chain=prerouting action=mark-connection new-connection-mark=c1passthrough=yes src-address=192.168.10.0/24 dst-address-type=!localper-connection-classifier=both-addresses:5/01 chain=prerouting action=mark-connection new-connection-mark=c2passthrough=yes src-address=192.168.10.0/24 dst-address-type=!localper-connection-classifier=both-addresses:5/12 chain=prerouting action=mark-connection new-connection-mark=c3passthrough=yes src-address=192.168.10.0/24 dst-address-type=!localper-connection-classifier=both-addresses:5/23 chain=prerouting action=mark-connection new-connection-mark=c4passthrough=yes src-address=192.168.10.0/24 dst-address-type=!localper-connection-classifier=both-addresses:5/34 chain=prerouting action=mark-connection new-connection-mark=c5passthrough=yes src-address=192.168.10.0/24 dst-address-type=!localper-connection-classifier=both-addresses:5/4提取路由的命令5 chain=prerouting action=mark-routing new-routing-mark=R1 passthrough=yes src-address=192.168.10.0/24 connection-mark=c16 chain=prerouting action=mark-routing new-routing-mark=R2 passthrough=yes src-address=192.168.10.0/24 connection-mark=c27 chain=prerouting action=mark-routing new-routing-mark=R3 passthrough=yes src-address=192.168.10.0/24 connection-mark=c38 chain=prerouting action=mark-routing new-routing-mark=R4 passthrough=yes src-address=192.168.10.0/24 connection-mark=c49 chain=prerouting action=mark-routing new-routing-mark=R5 passthrough=yes src-address=192.168.10.0/24 connection-mark=c5回程路由设置需要将从那个口进入就从相应的口回去,即保证每个外网口的数据能得到正确的路由同理标记c2,c3,c4,c5的回程路由提取回程路由同理提取c2,c3,c4,c5命令方式:10 chain=input action=mark-connection new-connection-mark=c1 passthrough=yesin-interface=pppoe-out111 chain=input action=mark-connection new-connection-mark=c2 passthrough=yesin-interface=pppoe-out212 chain=input action=mark-connection new-connection-mark=c3 passthrough=yesin-interface=pppoe-out313 chain=input action=mark-connection new-connection-mark=c4 passthrough=yesin-interface=pppoe-out414 chain=input action=mark-connection new-connection-mark=c5 passthrough=yesin-interface=pppoe-out515 chain=output action=mark-routing new-routing-mark=R1 passthrough=yesconnection-mark=c116 chain=output action=mark-routing new-routing-mark=R2 passthrough=yesconnection-mark=c217 chain=output action=mark-routing new-routing-mark=R3 passthrough=yesconnection-mark=c318 chain=output action=mark-routing new-routing-mark=R4 passthrough=yesconnection-mark=c419 chain=output action=mark-routing new-routing-mark=R5 passthrough=yesconnection-mark=c5路由设置添加五条默认路由,指定标记的路由内网PC上开启迅雷下载资料,可以看到所有的拨号出口都有流量。
1.1统计计算在线用户数量的监听器例1、本实例的应用背景在网站中经常需要进行在线人数的统计。
过去的一般做法是结合登录和退出功能,即当用户输入用户名密码进行登录的时候计数器加1,然后当用户点击退出按钮退出系统的时候计数器减1。
这种处理方式存在一些缺点,例如:用户正常登录后,可能会忘记点击退出按钮,而直接关闭浏览器,导致计数器减1的操作没有及时执行;网站上还经常有一些内容是不需要登录就可以访问的,在这种情况下也无法使用上面的方法进行在线人数统计。
我们可以利用Servlet规范中定义的事件监听器(Listener)来解决这个问题,实现“更准确”的在线人数统计功能。
2、HttpSessionListener事件监听器对每一个正在访问的用户,J2EE应用服务器会为其建立一个对应的HttpSession对象。
当一个浏览器第一次访问网站的时候,J2EE应用服务器会新建一个HttpSession对象,并触发HttpSession创建事件,如果注册了HttpSessionListener事件监听器,则会调用HttpSessionListener事件监听器的sessionCreated方法。
相反,当这个浏览器访问结束超时的时候,J2EE应用服务器会销毁相应的HttpSession对象,触发HttpSession销毁事件,同时调用所注册HttpSessionListener事件监听器的sessionDestroyed方法。
3、实现的基本原理可见,对应于一个用户访问的开始和结束,相应的有sessionCreated方法和sessionDestroyed 方法执行。
这样,我们只需要在HttpSessionListener实现类的sessionCreated方法中让计数器加1,在sessionDestroyed方法中让计数器减1,就轻松实现了网站在线人数的统计功能。
4、编程实现----实现对HttpSessionListener事件监听器程序(1)在项目中添加一个HttpSessionListener事件监听器程序类类名称为OnLineCounterListener ,包名称为com.px1987.webcrm.listener,实现HttpSessionListener、javax.servlet.http.HttpSessionAttributeListener接口(2)将产生出下面的程序结果(3)编程该程序package com.px1987.webcrm.listener;import javax.servlet.http.HttpSessionAttributeListener; import javax.servlet.http.HttpSessionBindingEvent; import javax.servlet.http.HttpSessionEvent;import javax.servlet.http.HttpSessionListener;import erInfoVO;import com.px1987.webcrm.util.OnLineCounter;public class OnLineCounterListener implements HttpSessionListener, HttpSessionAttributeListener {public OnLineCounterListener() {}@Overridepublic void sessionCreated(HttpSessionEvent arg0) {OnLineCounter.incrementCounter();}@Overridepublic void sessionDestroyed(HttpSessionEvent arg0) {OnLineCounter.reduceCounter();}@Overridepublic void attributeAdded(HttpSessionBindingEvent event) {if("oneUserInfoVO".equals(event.getName())){UserInfoVO oneUserInfoVO=(UserInfoVO)event.getValue();OnLineCounter.addOneUserInfoVOToList(oneUserInfoVO);}}@Overridepublic void attributeRemoved(HttpSessionBindingEvent event) { if("oneUserInfoVO".equals(event.getName())){UserInfoVO oneUserInfoVO=(UserInfoVO)event.getValue();OnLineCounter.removeOneUserInfoVOFromList(oneUserInfoVO);}}@Overridepublic void attributeReplaced(HttpSessionBindingEvent arg0) {}}由于session监听的是HTTP连接,只要有用户与server连接,就算连接的是一个空白的jsp页面,也会触发session事件,所以此处的session实际上指的是connection。
基于Router OS的网络QOS流量管理实现[摘要] RouterOS是Mikrotik公司的软路由系统,可以将普通电脑转变成功能强大的专业级路由器,QOS是一种解决网络延迟和阻塞的控制机制,本文探讨了基于RouterOS路由平台的QOS实现,重点探讨了NAT模式下RouterOS软路由内数据流标记的原理和方法,以及在此基础上的HTB流量优先级控制,最终达到尽可能的提高网络中各种应用效果,减少网络拥塞,最大化利用带宽。
[关键词] RouterOSQOSHTB流量控制随着我国互联网飞速发展,各种基于网络的应用越来越丰富,网络带宽增长速度总是滞后于应用的需求,网络带宽不可避免成为很多单位网络应用的瓶颈。
如何管理网络来降低网络拥塞,最大化利用带宽成了必须要解决的问题,于是QOS应运而生,QOS(Quality of Service)意为服务质量。
简单说QOS理念不在于限制,而在于优先,网络中虽然应用繁多,但是各种应用对于带宽的需求、响应要求是不同的。
QOS的基本思想是把数据分类,根据其类型决定通过的先后,在有限的带宽上尽可能让各种网络应用获得最好的效果。
RouterOS是东欧拉脱维亚Mikrotik公司的软路由产品,从性能和功能上丝毫不逊于中端路由器,RouterOS优点是对很多功能提供开放的设置和脚本编写,让管理员能够对路由器进行一些相当灵活的控制,RouterOS应用效果很依赖管理员的水平,因此也对管理员的技术有一定要求,门槛较高。
典型单位网络结构就是客户机、交换机和路由器组成的,路由器作为公网出口。
网络管理员可以通过路由器可以限制任何一台局域网内电脑的公网流量,网络流量管理并非难事,但是事情真的是这么简单么,绝非如此。
网络流量管理目标是什么?目标是最终实现最大化带宽利用,让网络上各种应用尽可能获得最好的效果。
单纯的限速并不能达到这个目的,不能根据网络应用的特点让带宽各尽所需,相反还会极大的带宽浪费。
怎样计算服务器托管带宽与在线人数服务器托管对于网站来说是举足轻重的,选择一个好的服务器就直接关系到了网站的发展,服务器的重要性是不言而喻的,那么站长们是否会计算服务器托管带宽与在线人数呢?专职优化、域名注册、网站空间、虚拟主机、服务器托管、vps主机、服务器租用的中国信息港来为你探究!计算机上有两个最基本的单位,Byte(字节)和bit(位),二者的换算关系是1Byte=8bits。
其他的K、M、G、T等都是数量级。
100Mbps(100M bits per second)独享带宽,换算到我们日常熟悉的文件大小,要除以8;也就是说100Mbps带宽,理论下每秒可以下载的文件大小约是12.5MB(M Byte).如果再加上损耗,IP头等,大概也就10MB/S左右。
如果你是用这10M去点播普通电影(600kbps)的,产生一次顺畅点播需要每秒传递的数据大小600/8≈80KB左右,10240K/80,也就120个同时链接(并发)。
当然如果你要是做网页的话,每个人需要的带宽大约也就5k /s左右,也就是2000来个同时连接(并发)。
通常意义上来讲,做网页服务器,用带宽来计算同时在线人数是不准确的,你同样可以支持1万个人在线,因为访问网页的时候只是短时间连接服务器请求数据,这 1万人未必同时需要1万个并发连接。
网页人数的在线,主要是跟服务器的性能相关。
视频服务器或者下载服务器,游戏服务器,才跟带宽直接相关。
三带宽能同时允许在线人数多少?带宽方面是支持在线人数的最关键的一个因素,服务器按照咱们所保证的百共保证带宽是3M,即3Mbit/s,相应的,服务器的数据最高传输速度应为3 /8byte/s*1024=384K/s 。
一分钟流量大约384K/S*60=23040K,假使每个用户一分钟内占用10K,即该一分钟内支持在线访问人数为2304人。
(图片类和视频类站点不在此例,因为图片类视频类每个用户一分钟内绝对超过10K),但是,我们并不能保证每个用户在一分钟内只访问一个该站链接,假如每个用户在一分钟内点该站两个链接的话,那么支持在线人数应该在2000以下。
ROS最详细的Hotspot设置教程带图解》网吧路由教程》网吧路由》天下网吧网关路由器的网络参数如下:WAN 口对应外网IP 为10.200.15.200/24,网关为10.200.15.1 LAN 口对应内网IP 为192.168.1.1/24DNS:61.139.2.69根据这些参数我们需要先配置好IP 地址、网关和DNS,并打开DNS 缓存等。
进入 ip address 配置IP 地址:进入 ip route 配置网关:进入 ip firewall nat 设置好NAT 伪装:进入 ip dns 配置DNS 缓存:现在我们的基本参数已经配置完成,现在我们需要配置的Hotspot 参数,配置Hotspot 参数的基本流程是:1、先进入ip hotspot user profile 设置用户分组规则2、然后在ip hotspot user 添加用户的帐号3、进入ip hotspot server profile 配置服务器规则4、在ip pool 中分配IP 地址段,根据需要启用DHCP 服务5、在ip hotspot server 添加并启用hotspot 服务现在我们进入 ip hotspot,并配置ip hotspot use profile在 user profile 里面一般配置如下几个参数:Idle-Timeout:用户在一定时间内没有任何流量发出后自动注销连接Keepalive-Timeout:路由器主动通过ICMP 探测主机是否在线,如果在一定时间为探测到自动注销连接(如果用户机开启防火墙,路由器无法探测到)Shared-users:帐号的分享用户多少,默认为1,即仅一个用户使用该帐号。
Rate-Limit:分配每个帐号带宽,格式为“上行 / 下行”Transparent-proxy:透明代理功能是否开启,一般使用Hotspot认证建议不用打开此参数。
其他参数请参考具体Hotspot 手册。
本区为菜鸟区,所讨论的对象为刚接触ROS的新手,高手请飘过ROS菜鸟系列1--实现共享上网,即内部网络多台机器通过ROS实现一起访问互联网的功能实现,以上是废话,呵呵前提条件:一台装有从网大公司购买的装好ROS电子盘及两张网卡的主机,通过显示器登录ROS(版本为3.30)实现第一步:查看网卡信息进入菜单:interface[admin@MikroTik] /interface> printFlags: D - dynamic, X - disabled, R - running, S - slave# NAME TYPE MTU L2MTU0 R ether1 ether 15001 R ether2 ether 1500从print命令显示的信息来看,两张网卡都已被ROS正常识别出来,如果显示的“X”,则表明网卡是禁用状态,如:[admin@MikroTik] /interface> printFlags: D - dynamic, X - disabled, R - running, S - slave# NAME TYPE MTU L2MTU0 X ether1 ether 15001 R ether2 ether 1500网卡“ether1”处于禁用状态可通过命令:[admin@MikroTik] /interface> enable ether1[admin@MikroTik] /interface> printFlags: D - dynamic, X - disabled, R - running, S - slave# NAME TYPE MTU L2MTU0 R ether1 ether 15001 R ether2 ether 1500设定“ether1”为外网网卡,“ether2”为内网网卡[admin@MikroTik] /interface> set ether1 name=wan[admin@MikroTik] /interface> set ether2 name=lan[admin@MikroTik] /interface> printFlags: D - dynamic, X - disabled, R - running, S - slave# NAME TYPE MTU L2MTU0 R wan ether 15001 R lan ether 1500实现第二步:配置IP地址1)如果是具备固定外网IP地址时:假定外网IP地址为172.16.0.2/28,网关是172.168.0.1,内网为192.168.1.1/24接上面:[admin@MikroTik] /interface> /ip address[admin@MikroTik] /ip address> add address=172.16.0.2/28 interface=wan[admin@MikroTik] /ip address> add address=192.168.1.1/24 interface=lan[admin@MikroTik] /ip address> printFlags: X - disabled, I - invalid, D - dynamic# ADDRESS NETWORK BROADCAST INTERFACE0 172.16.0.2/28 172.16.0.0 172.16.0.15 wan1 192.168.1.1/24 192.168.1.0 192.168.1.255 lan2)如果通过ADSL拨号共享上网时:假定ADSL的用户名:111和密码:111,内网:192.168.1.1/24[admin@MikroTik] /interface> pppoe-client[admin@MikroTik] /interface pppoe-client> add user=111 password=111 interface=wan add-default-route=yes[admin@MikroTik] /interface pppoe-client> printFlags: X - disabled, R - running0 X name="pppoe-out1" max-mtu=1480 max-mru=1480 mrru=disabled interface=wan user="111" password="111" profile=default service-name="" ac-name="" add-default-route=yes dial-on-demand=no use-peer-dns=no allow=pap,chap,mschap1,mschap2[admin@MikroTik] /interface pppoe-client> /ip address[admin@MikroTik] /ip address> add address=192.168.1.1/24 interface=lan[admin@MikroTik] /ip address> printFlags: X - disabled, I - invalid, D - dynamic# ADDRESS NETWORK BROADCAST INTERFACE0 192.168.1.1/24 192.168.1.0 192.168.1.255 lan实现第三步:配置网关1)固定IP:[admin@MikroTik] /ip address> /ip route[admin@MikroTik] /ip route> add gateway=172.16.0.1[admin@MikroTik] /ip route> printFlags: X - disabled, A - active, D - dynamic,C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,B - blackhole, U - unreachable, P - prohibit# DST-ADDRESS PREF-SRC G GATEW AY DISTANCE IN..0 A S 0.0.0.0/0 r 172.16.0.1 1 wan1 ADC 172.16.0.0/28 172.16.0.2 0 wan2 ADC 192.168.1.0/24 192.168.1.1 0 lan2)如果是ADSL,不需要配置,因为在上面配置IP地址是,选择参数:add-default-route=yes实现第四步:配置DNS[admin@MikroTik] /ip route> /ip dns[admin@MikroTik] /ip dns> set primary-dns=61.139.2.69 allow-remote-requests=yes [admin@MikroTik] /ip dns> printprimary-dns: 61.139.2.69secondary-dns: 0.0.0.0allow-remote-requests: yesmax-udp-packet-size: 512cache-size: 2048KiBcache-max-ttl: 1wcache-used: 5KiB参数allow-remote-requests=yes,意思是本地路由启用DNS功能,即:在内网机器上,配置DNS时可以直接使用网关地址作DNS服务器实现第五步:隐藏,共享上网(NAT)[admin@MikroTik] /ip dns> /ip firewall nat[admin@MikroTik] /ip firewall nat> add chain=srcnat action=masquerade[admin@MikroTik] /ip firewall nat> printFlags: X - disabled, I - invalid, D - dynamic0 chain=srcnat action=masquerade以上五步即可完成利用ROS实现内网多台机器共享上网的功能,在后续的系列中,我们会在此基础上添加其他功能,利用ROS现实现其他目标明确的功能高手请飘过,如果是通过winbox连接到ROS的用户,以上所有的命令都可以在winbox中的主菜单中的:“new terminal”直接进行粘贴操作使用。
ros常见问题与使用技巧RouterOS 功能包介绍:(修改补充中...)2007年11月22日星期四 18:51system ----------------------- 系统必要功能包,必须安装ppp ---------------------------- 点对点隧道协议;支持PPTP,PPoE和L2TP访问控制和客户端;支持PAP,CHAP,MSCHAPv1和MSCHAPv2验证协议;支持RADIUS验证和记录;MPPE加密;PPPoE 压缩;数据流控制;具备防火墙功能;支持PPPoE按需拨号。
dhcp -------------------------- DHCP服务器;DHCP客户端;DHCP接力;多DHCP网络;静态和动态DHCP租约;支持RADIUSadvanced-tools ------------- 高级工具包;ping;traceroute;bandwidth test;ping flood;telnet;SSH;packet sniffer;DDNS。
arlan --------------------------gps ----------------------------hotspot ----------------------- HotSpot 认证网关支持RADIUS验证和记录;用户可即插即用访问网络;流量控制功能;具备防火墙功能;实时信息状态显示;自定义HTML登陆页;支持iPass;支持SSL安全验证;支持广告功能。
hotspot-fix -------------------isdn --------------------------- ISDN dial-in/dial-out;PAP,CHAP,MSCHAPv1和MSCHAPv2验证协议;RADIUS验证和记录;Cisco HDLC,x75i,x75ui,x75bui 队列支持。
lcd -----------------------------支持LCD显示屏ntp ----------------------------- 网络对时协议服务器和客户端;同步GPS系统radiolan -----------------------routerboard ------------------routing ------------------------routing-test -------------------rstp-bridge-test --------------security -----------------------synchronous ----------------- V.35,V.24,E1/T1,X.21,DS3(T3)媒体类型;sync-ppp,Cisco HDLC,频中继协议;ANSI-617(ANDI or annex D)和Q933a(CCITT or annex A)频中继LMI 类型telephony ---------------------ups -----------------------------user-manager ----------------web-proxy ---------------------webproxy-test ----------------wireless ----------------------- IEEE802.11a/b/g wireless client和访问节点(AP);Nsetreme和Nsetreme2协议;无线分布系统(WDS);虚拟AP功能;40和104bitWEP;WPA pre-shared 加密;访问控制列表;RADIUS服务验证;漫游功能(wireless客户端);接入点桥接功能。
ROS如何统计内网在线人数
)
/ip firewall mangle add chain=prerouting src-address=192.168.2.1-192. 168.2.240 action=add-src-to-address-list address-list=LAN address-lis t-timeout=10m/system scheduleradd comment="" disabled=no interval=10m name=ClientNUM on-event=":global s 0\r\ \n:foreach i in=[/ip fire wall address-list find list=LAN] do={:set s (\$s+1)}\r\ \n:log inf o (\"\B5\B1\C7\B0\" . \$s . \"\CC\A8\BF\CD\BB\A7\BB\FA\D4\DA\CF\DF\") " policy=\ reboot,read,write,policy,test,password,sniff,sensitive start-date=jan/01/1970 start-time=00:00:00192.168.2.1-192.168.2.240 内网客户机IP(自己修改)
代码注意修改LAN(内网网卡区分大小写噢)
/ip firewall mangle
add chain=prerouting src-address=192.168.2.1-192.168.2.240 action=add -src-to-address-list address-list=LAN address-list-timeout=10m
/system scheduler
add comment="" disabled=no interval=10m name=ClientNUM on-event=":glo bal s 0\r\
\n:foreach i in=[/ip firewall address-list find list=LAN] do={:se t s (\$s+1)}\r\
\n:log info (\"\B5\B1\C7\B0\" . \$s . \"\CC\A8\BF\CD\BB\A7\BB\FA\ D4\DA\CF\DF\")" policy=\
reboot,read,write,policy,test,password,sniff,sensitive start-date =jan/01/1970 start-time=00:00:00
192.168.2.1-192.168.2.240 内网客户机IP(自己修改)。