自己写:数一数几个在听、几个只有本机能连
这次的 ss -tln 输出多了一行。 补全 count(),输出一共几个在监听和其中只有本机连得上的有几个,中间用 / 隔开。
自己写:从 ip 的输出里挑出对外地址
把上面那份 ip -br addr 的输出当成一个字符串处理。 补全 non_loopback_v4():找出不是回环的那个 IPv4 地址,并去掉后面的 /掩码。
哪个服务只有本机连得上
同一台机器上敲 ss -tln,看到两个服务在等着(输出已去掉与本题无关的系统内部条目): $ ss -tln State Recv-Q Send-Q Local Address:Port Pee
这台机器的地址是哪个
下面是在一台真实 Linux 机器上敲 ip -br addr 得到的输出(只保留了 lo 和 eth0 两行): $ ip -br addr lo UNKNOWN
0.0.0.0 是什么意思
看 ss 的输出,某个服务的本地地址写着 0.0.0.0。这表示【0】。
ip 列出来的一堆是什么
在一台机器上敲一条 ip 命令,屏幕上刷出一堆条目。它们是【0】。
自己写:绑在哪个地址上,决定谁连得上
两个服务,一个绑在 127.0.0.1 上,一个绑在 0.0.0.0 上。 补全 reachable_from_outside(),输出这两个服务外面能不能连上,用 / 隔开(能写「能」,不能写「不能
自己写:两条路各贴几个头、各走几跳
同一份资料发给两个不同的地址。头的数量应该一样,跳数应该不一样。 补全 trip() 里的跳数:回环 0 跳,远程 3 跳。输出两次调用的结果,中间用 / 隔开。
自己写:认出哪些是回环地址
一批地址混在一起,要把回环的挑出来。 补全 is_loopback(),输出回环有几个和不是回环的有几个,中间用 / 隔开。
回环和远程,哪些一样哪些不一样
同一份 1100 字节的资料,一次发给 127.0.0.1,一次发给 10.0.0.9,都按每包 400 字节切。 这段程序依次输出回环切几个包、远程切几个包、回环走几跳、远程走几跳。它输出什么? d