找回密码
 立即注册
CeraNetworksBGVM服务器主机交流会员请立即修改密码Sharktech防护
查看: 51|回复: 2

php求助帖

[复制链接]

69

主题

699

回帖

2674

积分

金牌会员

积分
2674
发表于 2011-2-3 22:29:24 | 显示全部楼层 |阅读模式
求一思路/方法
PS:
前言说明 /proc/net/tcp 这个文件是lin的TCP连接信息
其中的IP 端口 与 tcp连接状态 均是用16进制数表示的 所以需要先转换成
---------正文---------
我想用PHP直接查看当前TCP的连接状态
本来直接用[ol]
  • system('netstat -ntu | awk \'{print $5}\' | egrep -o "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" | sort | uniq -c | sort -nr');[/ol]复制代码这样既可查看了,不过这样子有点不太爽,毕竟有的时候system这类系统函数可能会被禁用
    所以我现在想用PHP调用/proc/net/tcp的信息[ol]
  • $str = @file("/proc/net/tcp");
  • for ($i=1; $i复制代码其中$zRem[$i]=远程连接的IP   $zST[$i]=远程连接的状态
    这个文件里面我暂时需要用到也就这两块
    可是这样获取后的信息,可读性很一般
    还不剩直接调用命令来的直观
    所以想让各位达人们帮忙想想有什么思路/方法来完成上面这个调用的效果

    我现在测试的方法是[ol]
  • $str = @file("/proc/net/tcp");
  • $IPs = "[";
  • $STs = "[";
  • for ($i=1; $i复制代码其中$IPs=远程连接的IP   $STs=远程连接的状态
    这样子就吧这两个信息给分开来了
    我想到的方法就是用json_decode()把这两个信息转换成数组了
    然后用array_count_values()来统计各值出现的次数
    可是统计出来后怎么使用呢?!
    难道再json_encode()?!再explode()分割?!
    个人觉得太麻烦了

    所以想请教下有没有什么简便的思路/方法来完成这个呢
  • 回复

    使用道具 举报

    48

    主题

    1529

    回帖

    5032

    积分

    论坛元老

    积分
    5032
    发表于 2011-2-3 23:26:50 | 显示全部楼层
    太难了  不懂
    回复

    使用道具 举报

    31

    主题

    95

    回帖

    409

    积分

    中级会员

    积分
    409
    发表于 2011-2-3 23:35:30 | 显示全部楼层
    原帖由 cnweb 于 2011-2-3 23:26 发表


    太难了  不懂
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|HS2V主机综合交流论坛

    GMT+8, 2024-11-18 07:51 , Processed in 0.048033 second(s), 4 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表