论坛风格切换切换到宽版
  • 740阅读
  • 6回复

[问题求助]一个关于linux下统计在线人数的问题! [复制链接]

上一主题 下一主题
离线wtwone.
 
发帖
1879
C币
-61192
威望
343
贡献值
1
银元
-4
铜钱
4274
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
DX们:我们单位的代理是拿linux AS4做到,领导让我统计一下每天都在线人数,原来都是通过arp建立.的连接来查看,由于arp冲突.的问题,把所有的arp都绑定了,不知道有没有其他的办法来比.较准确的查看某一个时刻上网的人数?谢谢.

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线kevin0426.
发帖
2245
C币
-192909
威望
427
贡献值
1
银元
-3
铜钱
5091
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13
iptstat

ntop

离线kaobo.
发帖
2065
C币
-60356
威望
403
贡献值
1
银元
-2
铜钱
4722
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13
看看 /proc/net/ip_conntrack 这个文件的内容是记录当前在连接状态表中的所有机器的列表

udp的第四个字段是 src=IP  tcp的第五个字段是 src=IP

我用这种方式能够查看某个时刻在线的IP的UDP和TCP连接数
file=/tmp/conn-$(date +%Y%m%d%H%M%S)

cp /proc/net/ip_conntrack $file

awk '/^udp/{udp[$4]++};/^tcp/{tcp[$5]++};{i=(/^udp/)?4:5;a[$i]++}END{for(i in a)printf "%-25s\t%d\tudp=%d\ttcp=%d\n",i,a,udp,tcp}' $file | sort -r -k2n
复制代码

这样能够大致统计出某个时刻同时的IP数,以及每个IP的udp“连接”和tcp连接数

因为读取ip_conntrack和计算需要一定的时间,因此统计的时间粒度不能很细

离线白乐天.
发帖
2018
C币
-140359
威望
350
贡献值
1
银元
-3
铜钱
4426
人人网人气币
0
只看该作者 地板  发表于: 2010-04-13
有人做 NAT 或 proxy 代理别人上网就没办法了
LZ 的需求基本上实现不了,即使能实现也不会准确,因此意义不大

离线ebengbu.
发帖
2059
C币
-60701
威望
375
贡献值
2
银元
-1
铜钱
4670
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-13
iptraf 的 lan monitor

发帖
2006
C币
-235913
威望
346
贡献值
1
银元
-1
铜钱
4370
人人网人气币
0
只看该作者 5楼 发表于: 2010-04-13
netstat -an |awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

发帖
2080
C币
-60684
威望
388
贡献值
1
银元
-4
铜钱
4695
人人网人气币
0
只看该作者 6楼 发表于: 2010-04-13
用户被禁言,该主题自动屏蔽!
快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个