📅  最后修改于: 2023-12-03 14:58:32.782000             🧑  作者: Mango
本题是一个简单的计算机网络问题,需要我们对网络中的数据包进行处理和转换。
在一台路由器上,收到一个长度为 $n$ 的数据包,其源 IP 地址是 $A$,目的 IP 地址是 $B$。路由器上有两个接口,分别连接到内部网络和外部网络。路由器需要判断该数据包是从内部网络发出,还是从外部网络流入。
数据包的格式如下:各部分均为 16 进制数
| 起始位置 | 长度 | 描述 | | -------- | ---- | ------------ | | 0 | 1 | 版本和头长度 | | 1 | 1 | 区分服务 | | 2 | 2 | 总长度 | | 4 | 2 | 标识 | | 6 | 2 | 标志和偏移 | | 8 | 1 | 生存时间 | | 9 | 1 | 协议 | | 10 | 2 | 首部检验和 | | 12 | 4 | 源 IP 地址 | | 16 | 4 | 目的 IP 地址 |
其中,版本和头长度、区分服务、总长度、标识、标志和偏移、生存时间、协议和首部检验和是 IP 协议头部中的字段,其余字段均属于数据包的载荷。
现在,请你编写一个程序,根据输入的数据包,判断该数据包的方向,并将其转发到正确的接口。
如果该数据包应从内部网络发出(即源 IP 地址以 10.X.X.X 形式给出),则输出字符串 from_in
,否则输出字符串 from_out
。
如果输出结果错误,请检查你的程序逻辑和输入格式。
54
450001c2369810004001062a0a00000a8a200cc0050300000000640000f9f5030000
from_in
该数据包的 IP 头部信息为:
因此,该数据包的方向应该是从内部网络发出。