网络路由器查表过程模拟

任务及要求
编程模拟路由器查表过程,用(目的地址 掩码 下一跳)的IP路由表以及目的地址作为输入,为目的地址查找路由表,找出正确的下一跳并输出结果。
1.
建立一个路由表
在这里插入图片描述

f=open('路由表.txt','r')
list1=[]
i=0
while(1):
    y=f.readline()
    if y=='':
        break
    list1.append(y)
f.close()

while(1):
    z=input("目的IP地址:")
    x=z.split('.')


    for i in range(2,len(list1)):
        a=list1[i].split()
        q=a[1].split('.')
        e=a[2].split('.')
        if a[0]=='1':
            if((int(x[0])&int(e[0])==int(q[0])) and (int(x[1])&int(e[1])==int(q[1])) and (int(x[2])&int(e[2])==int(q[2])) and (int(x[3])&int(e[3])==int(q[3]))):
                print("直接交付",a[3])
                break
             else:
                if ((int(x[0])&int(e[0])==int(q[0])) and (int(x[1])&int(e[1])==int(q[1])) and (int(x[2])&int(e[2])==int(q[2])) and (int(x[3])&int(e[3])==int(q[3]))):
                    print("间接交付,下一跳为:",a[3])
                    break
                else:
                    continue
        else:
            if ((int(x[0])&int(e[0])==int(q[0])) and (int(x[1])&int(e[1])==int(q[1])) and (int(x[2])&int(e[2])==int(q[2])) and (int(x[3])&int(e[3])==int(q[3]))):
                print(a[3])
                break
            else:
                print("转发分组出错!")
                break
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值