00:00
我们这说的这个客户端指的是什么?指的是一台电脑。实际上指的是什么IP?是IP,一个IP是一个客户端,不管你这个IP上这个机器啊,这个电脑你打开多少。浏览器它都是一个客户端,所以我们在线客户端统计。统计的是IP的数量。哦,统计IP的数量。那这题好办,怎么做?我统计IP的数量。那我们就得想了,那我就得。那是不是说我来一个IP。我来一个IP。我就给它放到一个集合里边。
01:00
然后放一个list,比如说放到list里来一个,我给他放到list再来一个,再来一个。请求这个请求你注意我们IP从哪可以获取到,可以只能从请求里边获取到啊,哎,我就判断一下这个。这个list里边有没有。这个IP,如果有这个IP我就不往里边放了,没这个IP。我是不是就应该给他?就应该给他。没这个IP,我当然我就应该给他加进去,对吧?啊,那这样的话怎么做。这样的话,我这里边儿啊,大家看我现在就改这个程序了啊,在这儿我不是要它了。要一个什么?我要一个list。List里边放什么,放IP的?
02:03
我这叫IP斯。可以吧?我另一个A。好。紧接着我把它。放到这儿,诶这个list里边,我给它放到这儿。然后呢?关掉啊。然后我要请求,现在和session好像又没多大关系了,对不对,所以这里边儿代码我现在不要了。这里边儿代码我不要了。删掉这个也删掉了,不要了。我要从请求里边获取到IP,我获取SR。
03:00
1.getrequest是吧。第二,Get remote address。这就是我IP呀,对不对,然后我有这个IP,以后我拿这IP要往。那个list里边放,但是我现在就获取到这个list,获取到这个list,我想想啊,获取这个list怎么获取呢。啊,获取list,那当然我还得获取到。Solid contest。IP。你看错了啊,IC是吧,然后ic.get attribute IP。
04:10
A,他是list。好。紧接着呢,我便利。便利。这个。IP。嗯,这个这个这个不能这就叫IP了,这样吧,这个我们换个名client IP是吧,客户端IP。如果我这要判断一下这个client IP怎么。
05:01
点儿。Equals。IP。如果相等,你注意如果相等是不是就找到了,说明这个里边有有我就结束了,什么也不做了。那。最后这个便利便利便利到最后这都没执行,就说明IPS这个list里边没有这个client IP,没有这个IP怎么办,我就可以把它加进去了ip.add。Client IP给它添加进去,添加进去以后再把变化过的这个list给它重新写回到。Somebody contest全域里边ic.set tribute ipp。OK吧,那我这里边儿要获取多少次的话。
06:04
那这就不是多少次了是吧。您是第几位?访客是吧,那这这个就不是了,是谁呀,从application scope里边获取到这个IP,这是因为list呀,它里边list里边的size。它的大小,这个类似的大小是不是就是访客数量啊,是IP数,当然是访客数量啊。嘿,这个是不是就实现了呢?第一位访客。
07:02
还是他直接刷新。第一位吧,是不是都是第一位。所以当然我我这一台机器有有有。有哥们说了,你这一台机怎么演示呢?再来个IP,你是不是他就是第二位了?我要想掩饰啊,也可以掩饰,怎么掩饰呢?你需要注意啊,你得理解这样一个事情。我这样。这样我们把这个IP给大家输出一下,你看一下这个IP,现在获取到这个IP是谁。或者这样吧。就给这吧,就给这获取这个IP。IP。
08:02
等于client IP,那你看一下这获取到这个IP是是谁啊,先看一下他,然后咱们再说这个还有点儿麻烦呢啊我。启动。刷新。看到没,现在IP用的是它啊。好,我现在换个IP来访问。我怎么换,你需要你需要注意这个啊,我们一台机器上要演示这个效果的话,可以这样来做。这是要访问的啊。我们的服务器的。那个主机呀,实际上它相当于是IP,只不过这个IP现在用的谁是用的这个东西,我可以用它,如果我现在给这儿写127.0.0.1,你注意也就是说我现在访问的服务器是这个服务器,这也是本机,它这相关什么,指定了本机现在的IP是这个东西,那这个IP和这个IP就不是同一个IP了,他在这在这做这个equals肯定俩是不相等的啊。
09:27
也就是说我们这儿要演示这种效果的话,你访问这个服务器的IP用的是什么,那么你客户端本机。这个IP用的就是谁。就是他。明白吧,也就是说我现在一台机器啊,一台机器。要模拟。这多个IP。怎么办?你访问服务器的时候,那个服务器的IP你多写几个。
10:03
它就相当于什么,你本机的IP也就是几个。就也就多出来了,也就多出来了,所以这个呢,你需要理解一下啊,因为你这样不管写谁,它都是本机,你localho它也是本机,只不过loho用的本机的IP是这个,你现在访问服务器用的是它。那时候你客户端现在用的IP也是它。我现在刷新啊。第二位了吧。是不是,你看这是第二位的。我还有一种方式。看着啊。我这还有个IP呢,因为我连着路由器呢。看着这个。
11:01
幺九二点幺六八点零点。100。这也是个IP。所以我这个就可以这样写。幺九二点幺六八点零点一百,也就是我现在啊,要访问的服务器的IP是这个东西。那都意味着什么?我现在本机的IP,我客户端用的IP也是这个。都是本机。第三位访客看到了吧?所以我自己啊,我们自己在一台机上可以用这样的三个IP来演示,那这三个访客了。那。是这个意思吗?我们这个程序是这样这个意思吗?就是这样一个意思。我统计的是IP的数量。那OK了。
12:00
统计的是IP的数量。你注意啊。那我关了它呢,或者说关关那个session,我们知道后台session并没有消失,我们现在让那个session给他失效吧。如果让session失效,让session失效这样。我这儿来一个。安全。退出。就退出。这可以想象到吧,我这提交给谁,提交给一个soet。那这个solid叫什么?我就叫logout solid就叫它,当然我这是简写的方式啊,我们正确的方式啊,不会出问题的方式,那肯定是这样写的,Page contest.request点。
13:08
哎,EST pass。是吧,呃,这样写,只不过现在我们没有这个solid,没有这个,我们给它定义一个呗。定义一个so。这个叫log out。是吧?这个呢?Log out solid。超链接肯定是do get。
14:11
我是三生失效,怎么写这个代码,Request get?是不是三?对吧,是三声失效,我们这儿一般用的是false啊session来判断,如果session session不等于那。然后点in valid。对吧。Session。SESSINSESIN。
15:03
这写错了。不等于闹是吧,哎,我就使三山失效。对吧,啊,这就是退出啊。那你想象一下,我这如果退出了怎么办呢?我这退出了,就意味着你这这个count啊,把这个关了,你你你你你你这个里边这个list里边的数据需要什么。是不是需要得剪剪掉它呀,得去掉。也是说我们这个list。哪儿那个类似的了。这个list IP从这个list里边应该把那个IP给它去掉。那怎么做?三神失笑,那好说,找吧。这是三星创建,我不用。
16:04
三生失效。如果三人失效。干嘛?I see get session.get。这个solid test IC,然后ic.get attribute IP对吧。APS,这是个list。问题出现了。我有了IP4以后要干嘛要remove删掉谁删掉IP?
17:07
这个IP我们有没有。这个IP我们有没有。我们没有。没有,那获取呗,好获取,从哪获取三身呢?从三神里面获取,看能不能获取到,这不就是那个三参吗,对吧。那我们看一下session里边能获取到。点get有没有?能不能获取到IP,获取不到,我之前就说了,获取IP只能从请求。那我就获取请求吧,你注意。从session获取到request吗?能不能?
18:00
有哥们不理解这个东西,但是想到我总得想办法,我从session里面获取到request,你不用想,不可能获取到,为什么?因为session,什么session是绘画,一个绘画里边可以包含多个request。你通过这个session,你想获取到哪一个request呢?我这里面包含很多,你获取哪一个呢?所以它没办法指定,也就是说通过session是获取不到request的,但通过request可以获取到session,为什么?因为一个请求肯定对应着一个。Session,也就是说,Session和request之间的数量关系是一对多的。一个session可以包含多个request。反过来,一个request只对应的是一个session,所以通过request可以汇到session,但是通过session获取不到。
19:03
所以没办法了。没办法了,我们要想给他删掉这个。IP,你就得获取这个IP,而在这儿是获取不到的。这儿获取不到,我们能不能想一个其他办法呢?比如。我们看这。你这不是获取到这个IP了吗?是吧?这不是获取到了IP,那我们的IP呢?IP是不是我获取到以后,我能不能获取到session呢。我把这个IP给他放到。Session域里边。
20:01
当然你要给他放到三神域啊,你注意要获取到三神,你看这儿有没有三神,没有啊,那怎么办?这就可以了啊。这就可以了,request.get session。Session有了。对吧,现在三神有了,三神有了以后,我把这个。Session。把这个IP。给它放到三生玉里边好,放到那儿以后怎么样呢?当这个session被销毁的时候,被销毁的时候,那不是在这儿笑被销毁吗?我从这个session域里边get tribute。
21:11
Client IP。IP。我获取到,诶我这样给他删掉,这是不是又可以了呀。好了,任务完成了。任务完成了。重新启动一下。这样啊。关掉,把这些都关掉啊。
22:06
走这第一位访客对吧。127.0.0.1第二位访客。呃,192.168.0.1版第三位访客好,我这儿刷新一下它。刷新三位吧,你现在谁看到的都是三位啊?刷新。是不是都是三位没问题吧,OK。我现在要退出一位。
23:00
这个退出去了。这个退出去了,看看它刷新一下看到几位,他是不是应该看到两位就对了。嘿,还真是。再看它刷新。两位。那我这再点退出。这样刷新应该几位,是不是一位就对了,诶实现了。这个实现了。真的实现了吗?你再看。看着啊。我。伤心。善心。重新来看这边刷新三位吧。这个刷新是不是都是三位,现在三位了啊,你看好CTRLC。
24:14
几位?还有三位吧,因为IP你看是不是用的这个IP啊,所以他是三位,这肯定是没问题的。对不对,他肯定是没问题的,可是在哪会出问题,看好了看好了啊。我已localhost。这个IP来访问的。浏览器有几个看好,这是一个吧。这是不是一个两个对不对。我退出。那我问问现在。我刷新。他应该有几位访客?
25:02
应该有几位或者说几个客户端。还应该是三个客户端。为什么这个并没有退出啊,对不对,也就是说我这一个客户端上。用了两个,我发出了两个。绘画一个客户端发出了两个绘画,那么有一个绘画。失效了,给他结束了。但是还有一个并没有退出,所以现在正确的应该是三位访客,对不对,我现在刷新。两位了。你再看这刷新是不是两位。刷新。你看这儿出错了,看到没,这儿出错了。
26:00
这是怎么回事呢?我们的这种解决方案,问题就出在了一个客户端。发出了多个绘画。
我来说两句