找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 33|回复: 2

php求助帖

[复制链接]

107

主题

4571

回帖

9497

积分

论坛元老

积分
9497
发表于 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()分割?!
    个人觉得太麻烦了

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

    使用道具 举报

    312

    主题

    1万

    回帖

    2万

    积分

    论坛元老

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

    使用道具 举报

    84

    主题

    551

    回帖

    1398

    积分

    金牌会员

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


    太难了  不懂
    回复

    使用道具 举报

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

    本版积分规则

    Archiver|手机版|小黑屋|Discuz! X

    GMT+8, 2025-1-11 12:55 , Processed in 0.019887 second(s), 5 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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