来公司实习马上一个月了,现在做一个IP定位项目的TRACEROUTE环节,具体工作就是写出traceroute.py程序,NND搞的我有点头大,不过现在搞定了。
1,最先搞的我头疼的是,python的格式对齐,失去了大括号的庇护,python的代码好像更自由了,不是很好的管理了。我的第一个挫败就来源于此,我的程序做判断的时候分了几种情况:if... elif... elif... elif... else...然后如果发生了一种情况,就应该执行下面的for循环。但是单纯的我把这个for循环写在了最后内个else缩进四格的里面了,悲剧由此产生!~
2,第二个搞的我头疼的是,python的for循环,[vantage,routerip,step,delay]刚开始我想找到最后一跳的路由信息,看看该traceroute刺到头没有(我用了U,T,I三种包)。我写了三个并列的for,很遗憾,我再一次悲剧了,逻辑错误!解决方法是先从vantage(探测点)找到该主线,然后在三个并列的for,但是在for的时候找到该vantage的时候,就break。问题搞定!~
3,第三个搞的我郁闷的是,python的数据结构,我要用每一次的各个包的时延来update我们现有数据库中的delay。我的程序中出现了这样一句:newlist[l][3]=min(n1,n2,n3),悲剧再一次发生了!我的newlist是外边两层列表,里面是一层元组,即是:[[()()..()],[()...()]...[()...()]],等于我是给一个元组的元素赋值了,那不是找死么!解决办法:我对newlist又加了一个外层循环,然后再更新newlist之前,newlist[m][l]=list(newlist[m][l]),好了,问题搞定!
唉,对校园生活是无限怀念啊,天天打篮球爽叉叉!
阅读(1341) | 评论(0) | 转发(0) |