linux为什么默认tcp6,linux – 为什么/ proc / net / tcp6将:: 1表示为:: 100:0

我正在编写一个实用程序来检查/ proc / net / tcp和tcp6以查找活动连接,因为它比解析netstat输出更快.

因为我实际上没有启用ipv6,所以我主要使用localhost作为我的参考点.这是我的/ proc / net / tcp6的副本

sl local_address remote_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode

0: 00000000000000000000000000000000:006F 00000000000000000000000000000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 19587 1 ffff880262630000 100 0 0 10 -1

1: 00000000000000000000000000000000:0050 00000000000000000000000000000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 22011 1 ffff880261c887c0 100 0 0 10 -1

2: 00000000000000000000000000000000:0016 00000000000000000000000000000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 21958 1 ffff880261c88000 100 0 0 10 -1

3: 00000000000000000000000001000000:0277 00000000000000000000000000000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 28592 1 ffff88024eea0000 100 0 0 10 -1

这是匹配的netstat -6 -pant

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp6 0 0 :::111 :::* LISTEN -

tcp6 0 0 :::80 :::* LISTEN -

tcp6 0 0 :::22 :::* LISTEN -

tcp6 0 0 ::1:631 :::* LISTEN -

来自tcp6的条目0-3对应于::’s(所有ipv6),但条目4应该是:: 1的对应条目.

这是我困惑的地方……

00000000000000000000000001000000 => 0000:0000:0000:0000:0000:0000:0100:0000 => :: 100:0

当我通过一些代码运行:: 1来生成完整的十六进制表示时,我得到:

import binascii

import socket

print binascii.hexlify(socket.inet_pton(socket.AF_INET6,'::1'))

00000000000000000000000000000001

我不能以编程方式将这两个值排成一行,因为它们不匹配(显然).他们为什么不匹配?为什么内核认为:: 100:0是:: 1?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值