免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2392 | 回复: 6
打印 上一主题 下一主题

[内核入门] 如何从task_struct得到netstat(网络连接)的相关信息 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-05-21 06:20 |只看该作者 |倒序浏览
netstat得到的信息有:
  1. Active Internet connections (w/o servers)
  2. Proto Recv-Q Send-Q Local Address Foreign Address State
  3. tcp 0 2 210.34.6.89:telnet 210.34.6.96:2873 ESTABLISHED
  4. tcp 296 0 210.34.6.89:1165 210.34.6.84:netbios-ssn ESTABLISHED
  5. tcp 0 0 localhost.localdom:9001 localhost.localdom:1162 ESTABLISHED
  6. tcp 0 0 localhost.localdom:1162 localhost.localdom:9001 ESTABLISHED
  7. tcp 0 80 210.34.6.89:1161 210.34.6.10:netbios-ssn CLOSE

  8. Active UNIX domain sockets (w/o servers)
  9. Proto RefCnt Flags Type State I-Node Path
  10. unix 1 [ ] STREAM CONNECTED 16178 @000000dd
  11. unix 1 [ ] STREAM CONNECTED 16176 @000000dc
  12. unix 9 [ ] DGRAM 5292 /dev/log
  13. unix 1 [ ] STREAM CONNECTED 16182 @000000df
复制代码
Active Internet connections 和 Active UNIX domain sockets 两部分。
通过进程的task_struct结构可也得到第二部分的socket信息。
请问第一部分的信息是如何得到的呢? 或者说
如何从进程的task_struct 结构 得到该进程的网络连接情况,监听哪些端口等等。
如果通过进程的task_struct 结构不能得到网络连接信息,请问通过内核的哪些结构体 可以得到网络连接的信息?

谢谢~

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
2 [报告]
发表于 2013-05-22 15:16 |只看该作者
回复 1# xiongweixie
通过task_struct的fd应该可以获取到socket信息

   

论坛徽章:
0
3 [报告]
发表于 2013-05-22 23:13 |只看该作者
回复 2# 瀚海书香


    恩 是可以的  
    但是如何得到tcp 连接  端口  ip地址呢?

论坛徽章:
0
4 [报告]
发表于 2013-05-23 09:16 |只看该作者
netstat 是通过读取/proc/net/tcp 和 /proc/net/unix 来获取tcp 连接信息和unix  socket,具体细节可以看内核代码如何实现这两个文件的。通过task_struct来获取socket,这个很复杂吧?task_struct 和socket没有直接关联,而是通过文件系统间接关联。你要得到所有socket,还要遍历所有的task_struct。

论坛徽章:
0
5 [报告]
发表于 2013-05-30 01:37 |只看该作者
回复 4# MoWaters


    谢谢你的回复
    是的  我遍历了 tasks  得到的只有socket 的信息    得不到 udp tcp的信息 所以 想想办法找到这些信息呢

论坛徽章:
0
6 [报告]
发表于 2013-05-30 02:26 |只看该作者
找到如何实现了~
感谢各位的回帖~

有兴趣的  具体看这个函数~
struct socket *sockfd_lookup(int fd, int *err)

论坛徽章:
0
7 [报告]
发表于 2016-07-27 20:44 |只看该作者
楼主你好,我有一些问题想请教你,能否QQ上聊,我QQ是1163024056,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP