透明网桥算法python版
程序员文章站
2022-03-26 19:25:22
...
import datetime
# author:AHPU-xuwei
# It's reserved for students of Computer College of Anhui University of Engineering to take computer network courses.
class Data:
add=''
port=0
dateTime=''
sendTable=[]
index=0
def Find(Add):
global index
index=0
for e in sendTable:
if e.add==Add:
return True
index=index+1
return False
def Print():
l=len(sendTable)
print('此时转发表如下:')
print('***************转发表***************')
for i in range(l):
print('{} {} {}'.format(sendTable[l-1-i].add,sendTable[l-1-i].port,sendTable[l-1-i].dateTime.strftime('%Y-%m-%d %H:%M:%S')))
print('**************************************')
print()
while True:
sourceData=Data()
sourceAdd,port=input('输入源地址和端口:').split()
port=int(port)
sourceData.add=sourceAdd
sourceData.port=port
sourceData.dateTime=datetime.datetime.now()
destinationAdd=input('输入目的地址:')
if Find(destinationAdd):
if sendTable[index].port==port:
print('丢弃此帧,因为源地址和目的地址处在同一网段内,目的主机已经收到此帧。')
else:
print('通过端口{}转发此帧。'.format(sendTable[index].port))
else:
print('向除端口{}以外的所有端口转发此帧。'.format(port))
if Find(sourceAdd):
sa=sendTable.pop(index)
sa.dateTime=datetime.datetime.now()
sendTable.append(sa)
else:
if len(sendTable)>=100:
sendTable.pop(0)
sendTable.append(sourceData)
Print()
上一篇: three.js 通过 Reflector.js 创建镜面反射
下一篇: 微信jssdk获取收货地址