基于淘宝IP地址库的图形界面traceroute
程序的设计与实现
张 亮
(扬州工业职业技术学院电气信息工程学院 江苏扬州 225127)
摘 要: traceroute程序是常用的网络诊断工具之一操作系统自带的traceroute程序均基于终端命令行界面使用不方便且无
法显示每一跳路由IP所对应的地理和运营商信息。设计实现了一个基于图形界面的traceroute程序并利用淘宝网
提供的IP地址库和Web Service API接口 对每一跳路由IP地址进行查询显示该IP地址所对应的运营商及所在地
区。实践证明该traceroute程序比操作系统自带版本使用更加方便和直观。
关键词: traceroute;淘宝IP地址库; ICMP
中图分类号: TP 31 1 52 文献标志码: B 文章编号: 1672-2434(2014)01-0024-03
Design and Implementation of the GUI traceroute
Program Based on TaoBao IP Database
ZHANG Liang
(Department of Electronic Information and Engineering Yangzhou Polytechnic Institute Yangzhou 225127 China)Abstract:Traceroute program is frequently used by network administrators to diagnose network The OS build in traceroute programs are allbased on console so they are not convenient to use Furthermore they are unable to display the geographical and carrier infor-mation of the corresponding hop IP address In this paper a GUI version of traceroute program is implemented and the Web
Service API provided by TaoBao is used to resolve every hop IP address And the effectiveness of our program is proved in prac-tical use
Key words: traceroute; TaoBao IP database; ICMP
0 引言
在网络管理和维护工作中操作系统自带的 网路由进行查询特别是对跨运营商网络路由进行trac erout e工具是最常用的基本工具之一通过这一 查询的时候使用十分不便。 因此本文对trac er-工具网管可以清楚地查看从当前主机访问Internet oute工具的原理进行了分析并利用C#和NET平上的任意目标主机时所经过的路由IP地址以及到 台设计和开发了一个基于图形界面的trac ero u t e程每一跳路由所产生的网络延时。然而无论是Wi n- 序在实现trac eroute程序功能的基础上利用淘宝dows操作系统还是Linux操作系统所提供的trac- 网提供的IP地址库和Web Service API接口 对每ero u t e工具均基于终端命令行界面使用不是很方 一跳路由IP地址进行查询显示该IP地址所对应便且该工具完全依靠反向DNS来查询每一跳路由 的运营商及所在地区。实践证明该工具比操作系IP所对应的域名国内运营商路由一般极少提供反 统自带版本使用更加方便和直观。
收稿日期:2013-12-09
作者简介:张 亮( 1981-) 男讲师硕士主要研究方向:计算机专业课程
第13卷 第1期 张 亮:基于淘宝IP地址库的图形界面traceroute程序的设计与实现 25
1 traceroute原理
目前Windows操作系统及Unix、Linux操作系 运行。这样的好处是即使线程因为网络超时发生阻统都自带traceroute工具(在Windows操作系统上名 塞也不会影响主线程的运行。否则如果采用单线称为trac ert) 其实现原理均基于IC MP协议但细节 程设计的方式当网络超时发生时主线程会被阻有一定区别。在Wind o ws系统上trac ert工具的实 塞整个图形界面会卡死从而严重影响用户的使用现是基于ICMP Echo equest Echo eply和TTL- 体验。另外本程序主要在Windows平台下运行因expired的具体来说当源主机使用tracert命令来 此选择采用发送ICMP Echo equest包的方法来实探测前往目标主机的路由时源主机会按顺序发出 现路由跟踪。程序主要实现步骤如下:
最多30个ICMP Echo equest数据包并将第一个 ①定义ICMP类:根据ICMP协议规定实现IC-数据包的TTL值设为1 第二个数据包的TTL值设 MP类相关字段和操作方法。
为2 并依此类推。路径中的第n个路由器会接收 ②创建aw Socket:因为ICMP数据包是直接打到源主机发送的第n个ICMP Echo equest数据包 包在IP包中进行发送的因此程序中如果想收发并因为TTL已经减为0而向源主机发送ICMP TTL- ICMP包必须创建aw Socket。在C#中可以采用expired数据包这样源主机就得到了该跳路由器的 下列代码创建:Sockets = new Socket(Address Fami-IP信息和数据包往来需要的时间。 当目标主机收 ly InterNetwork SocketType a wProtocolType Ic-到最后一个ICMP Echo equest包时会发回type mp) 。需要注意的是微软在Windows 7操作系统为0的ICMP Echo eply包当源主机收到此包时 中加强了对安全性的控制程序运行时默认权限为就知道目标主机已经到达从而结束发送ICMP 非管理员权限而创建aw Socket需要管理员权Echo equest数据包tracert命令结束1 。在Unix 限因此在程序编译成功后需要使用管理员权限来和Li nux系统上当源主机使用trac eroute命令时 运行如果想让程序在启动时自动要求管理员权限会按顺序发出目标UDP端口号大于32768的UDP 可以修改appmanifest文件中的配置项如在Win-数据包同时TTL从1开始递增和上文原理一样 dows XP平台下运行程序则无此问题。
中间的路由器送回ICMP TTL-expired数据包而目 ③获取目标主机IP:使用系统提供的Dns类的标主机会送回ICMP port unreachable数据包(因为 esolve方法对用户输入的域名或者IP进行解析没有任何应用程序会使用大于32768的端口 并打包成IPEndPoint类便于后续发送数据包。需号) 2 。从上述原理可以看出只要任何一跳路由 要注意的是有 一些网站的域名对应多个IP地址器设置不发送ICMP TTL-expired数据包该跳路由 在程序中统一使用返回的第一条IP地址。的信息就无法获得这就是为什么在实践中使用 ④构造ICMP数据包:利用前面定义的ICMP来traceroute命令的时候总有一跳或多跳路由显示“请 构造ICMP数据包。 由于发送的是ICMP Echo e-求超时2 系统实现 任意设置校验和字段先设为0 在其他字段设置完
下使用C#语言开发Winform程序。 ⑤将ICMP打包到IP包中进行发送:通过for
循环控制发送TTL从1开始递增的IP数据包因
2 1 Winform实现 为网络路由一般不可能大于30跳所以程序最多循
控件来显示结果一个B
tOptionName SendTimeout 10000)和SetSocketOp- ip taobaocom/service/get IpInfophp? ip= ip地址tion( SocketOpti onLevel Socket So cketOpti onName 字串即可。该接口返回的信息为JSON格式J SONeceiveTimeout 10000)来设置发送和接收超时时 (JavaScript Object Notation)是一种轻量级的数据交间本程序都设为10000ms。另外在发送之前需 换格式 易于人阅读和编写同时也易于机器解析要通过DateTimeNow来获取当前系统时间当对应 和生成。如对IP地址222 189 131215进行查询的包返回时再次获取系统时间从而计算出 TT 调用http: //ip taob ao com/servi ce/get IpInfo php?值。 ip=222 189 131 215 返回的结果为{ "code":0 "
⑥将结果在ListBox控件显示:通过eceive- data": { "country": " \u4 e2 d\u56 fd" "country_id": "From( Byteecv Byteec v Length CN" " are a" : " \ u534 e \u4 e 1 c" " area_id": "SocketFlagsNone ref epSC)方法接收返回的ICMP 300000" "region": "\u6c5f\u82cf\u7701" "region_数据包如果超过规定的时间没有接收到回应则 id": "320000" "city": " \u626c\u5 dde\u5e02" "直接通过continue语句进行下一次循环并在 city_id": "321000" "county": "" "county_id": " ListBox控件中显示此跳路由超时。如果正常接收 1" "isp": " \u7535\u4 fe 1" "isp_id": "100017" "到回应则通过ref epSC引用变量获取该跳路由 ip": "222 189 131215"} } 其中“code”的值的含IP并通过list- Box ItemsAdd方法将该条信息添加 义为0:成功1:失败。而"country"、"region"、"cit-到ListBox控件中。最后需要判断此次接收到的 y"、"isp"则分别对应国家、省、市和运营商它们的ICMP包的type是否为0 如果为0 则说明此次接收 值都用Unicode进行了编码。对应到程序只需要到的已经是IC-MP Echo eply包目标主机已到达 将2 1节中的第⑥步进行改进当通过ref epSC引循环结束否则继续循环将TTL加1后发送下一个 用变量获取某跳路由IP后可通过HttpWebequestICMP Echo e- quest数据包。 类发起GET请求并通过HttpWebesponse类来获
22 淘宝IP地址库简介
通过上述程序步骤已经实现了带图形界面的 不带有对JSON格式数据进行解析的类库需要通trac eroute程序的基本功能但和系统自带的程序一 过第三方类库来进行解析。本项目选择采用著名的样还 无法显示每一跳路由IP地址对应的信息。如 JsonNET 45版本来进行JSON解析JsonNET性果需要解析IP地址的信息需要有一个IP地址信息 能强大使用方便可以便捷地将JSON数据转换数据库才可以实现目前中国各运营商并无官方数据 成NE T类或者可以直接手动对JSON各个Stri ng提供想实现这一功能只能通过第三方数据实现淘 对应的Value进行操作限于篇幅具体API操作可宝IP地址库(http: //ip taob aocom)是目前比较好的 参考该类库的主页http: //j soncodep l excom/测试运行
数据根据淘宝自身统计目前其数据库对IP地址 将代码编译生成可执行文件后在扬州电信宽来源国家的识别准确度达到100%中国大陆省准 带网络环境下对软件进行了测试如对江苏移动官确度超过998%市准确度超过968%运营商准 网进行追踪结果如图1所示。
确度超过943%可以说数据质量相当高完全能 可以看到从扬州电信宽带网络访问江苏移动满足需求。更为重要的是淘宝IP数据库完全通过 网络需要经过电信骨干网然后通过网络互联互通Web Service的方法对外提供免费服务只需调用淘 中心进入中国移动骨干网从而最终访问到江苏移宝提供的Web API 即可得到IP地址对应的信息 动官网目标服务器。通过图1也可以清楚直观地看本地程序无需下载数据库文件使用十分方便。 出当数据包在电信骨干网和移动骨干网内进行传
23 使用淘宝IP地址库进行IP解析
使用淘宝IP地址库进行IP地址解析非常简 联互通带宽不足仍然是造成不同运营商网络互访缓单只需使用GET方式调用淘宝提供的UL:http: // 慢的主要原因。
(下转第32页)
结束语
艺术素养的培养与形成。 在动画产业高速发展的大环境下此专业的人
3)注重创作能力的培养。未来的动画无论怎 才培养面临着重大的挑战。作为高等院校应当以样发展创作的价值比例只能越来越高6 。 因此 较新的教学理念和先进的教学资源对学生加以培在课程的教学中应当注重学生创作能力的培养。 养、训练不断提高学生综合素质和艺术修养。 同在实践课程中不能只教授软件的具体功能还需注 时高校应积极为学生提供较好的创作平台相信不意各软件的意义和价值以及其是如何支持创作的。 久的将来会有越来越多的优秀动画作品脱颖而出。每个学生都有自己的创造力、想象力和艺术天分在
课堂的教学中教师需为学生的天分提供展示的机 参考文献:
会。 因此在 3DSMAX课程教学安排中应加大实 1 康凯三维动画在中国的发展及现状分析J 电影训教学比例鼓励学生创作鼓励学生发挥自己的想 文学2008( 17) : 27-28
象力和创造力建立以学生创作作品为基础的考核 2 陈佼佼动画艺术中应该被重视的艺术性J 大众
对设计问题进行专项研究要求学生在规定时间内 外教育(理论) 2008(6) : 94
完成实训作品7 。例如结合福建省教育厅开展的 6 (美)悉德·菲尔德 电影剧本写作基础———从构思全省第四届大学生艺术节活动教师可要求学生围 到完成剧本的具体指南M 鲍玉珩钟大丰绕活动“我与中国梦”的主题以微电影为背景制 译北京: 中国电影出版社2002: 231
作一段三维动画的片头。这样既可以激发学生学习 7 徐大鹏 数字艺术设计中的三维动画教学探讨的潜能和兴趣也可以为学生提供创作的平台对学 J 浙江万里学院学报2004(6) : 169-171 生综合能力的提升会有莫大的好处。
檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿檿
(上接第26页)
棉花云官网棉花云隶属于江西乐网科技有限公司,前身是2014年就运营的2014IDC,专注海外线路已有7年有余,是国内较早从事海外专线的互联网基础服务提供商。公司专注为用户提供低价高性能云计算产品,致力于云计算应用的易用性开发,并引导云计算在国内普及。目前公司研发以及运营云服务基础设施服务平台(IaaS),面向全球客户提供基于云计算的IT解决方案与客户服务(SaaS),拥有丰富的国内BGP、双线高防...
Sharktech荷兰10G带宽的独立服务器月付319美元起,10Gbps共享带宽,不限制流量,自带5个IPv4,免费60Gbps的 DDoS防御,可加到100G防御。CPU内存HDD价格购买地址E3-1270v216G2T$319/月链接E3-1270v516G2T$329/月链接2*E5-2670v232G2T$389/月链接2*E5-2678v364G2T$409/月链接这里我们需要注意,默...
virmach送来了夏季促销,价格低到爆炸,而且在低价的基础上还搞首年8折,也就是说VPS低至7.2美元/年。不过,这里有一点要说明:你所购买的当前的VPS将会在09/30/2021 ~ 04/30/2022进行服务器转移,而且IP还会改变,当前的Intel平台会换成AMD平台,机房也会变动(目前来看以后会从colocrossing切换到INAP和Psychz),采取的是就近原则,原来的水牛城可能...