显示dos命令ping和tracert等输出结果中的ip对应的地域名称
来源:互联网 发布:中国大数据科学家论坛 编辑:程序博客网 时间:2024/05/21 08:41
公司老大今天使用了dos命令ping,他想看到其中ip地址对应的地域名称。
如dos下命令ping www.qq.com的输出结果是:
正在 Ping www.qq.com [113.108.20.50] 具有 32 字节的数据:
来自 113.108.20.50 的回复: 字节=32 时间=3ms TTL=52
来自 113.108.20.50 的回复: 字节=32 时间=3ms TTL=52
来自 113.108.20.50 的回复: 字节=32 时间=2ms TTL=52
来自 113.108.20.50 的回复: 字节=32 时间=3ms TTL=52
113.108.20.50 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 2ms,最长 = 3ms,平均 = 2ms
如果上面的输出结果中每个ip后面跟着相应的地域名称是不是更好点?
老大给了一个url https://www.surfchen.org/nali,这位老兄使用了纯真ip数据库,给出了linux下的相应实现。
有了相应的参考,我们便可以实现windows下的相应实现了,详细步骤如下:
1 创建匿名管道,截获相应dos命令输出结果的每一行的字符串,如果输出为空,则退出,否则进行下面步骤;
2 提取出字符串中的ip地址,如果没有ip地址,直接跳到第5步;
3 调用纯真ip数据库的相关接口获取相应的地域名称;
4 把地域名称字符串插入到原字符串的后面,形成新字符串,输出;
5回到第一步。
上面的关键在于创建匿名管道,然后截取字符串中的ip地址。
我使用了VC2010创建了相关工程,如果要在Debug模式下进行调试,注意把数据库QQWry.Dat复制到工程的Debug目录下面。
发布的时候,把程序tr.exe和QQWry.Dat放在一个目录下发布,其使用格式是tr dos command 或 tr.exe dos command,如tr ping www.qq.com,其结果如下:
正在 Ping www.qq.com [113.108.20.50 广东省深圳市 电信] 具有 32 字节的数据:
来自 113.108.20.50 广东省深圳市 电信 的回复: 字节=32 时间=3ms TTL=52
来自 113.108.20.50 广东省深圳市 电信 的回复: 字节=32 时间=3ms TTL=52
来自 113.108.20.50 广东省深圳市 电信 的回复: 字节=32 时间=3ms TTL=52
来自 113.108.20.50 广东省深圳市 电信 的回复: 字节=32 时间=3ms TTL=52
如果要输出命令tracert的结果相关地域名称,使用命令就是tr tracert www.qq.com 或 tr.exe tracert www.qq.com。
具体源码在我的csdn资源站http://download.csdn.net/user/menggucaoyuan。
我的email是alexstocks@foxmail.com,欢迎索要程序或者报告bug。
- 显示dos命令ping和tracert等输出结果中的ip对应的地域名称
- Ping 和 Tracert 命令
- Tracert和Ping的命令区别
- 关于ping和tracert的网络命令
- 网络测试常用的命令-比较ping,tracert和pathping等命令之间的关系
- ping命令和tracert命令
- ping和tracert命令详解
- ping和tracert命令详解
- ping命令中ttl含义,在tracert命令中的意义,tracert命令的拓扑实现方法
- DOS下常用的网络命令net、netstat 、nbtstat 、tracert 、ping 、ipconfig 总结
- 关于Ping和Tracert命令原理详解
- 命令行下CMD不能使用ping和ipconfig、tracert等命令不能使用
- DOS下java,jar等命令的输出结果乱码的问题
- 几个常用的、重要的网络命令!(ping,Tracert ,winipcfg等)
- 【DOS网络命令】-tracert的用法
- DOS命令之tracert
- 获取DOS命令输出结果
- Linux下ping命令、traceroute命令、tracert命令的使用
- 第2章、搭建Android的开发环境(从零开始学Android)
- 每日一题(14)——找到符合要求的整数
- C++中公有继承、保护继承、私有继承的区别
- 设计模式—工厂模式
- 使用C++和Boost库写一个自己的脚本引擎
- 显示dos命令ping和tracert等输出结果中的ip对应的地域名称
- dll的动态加载
- Ubuntu编译内核树以及简单驱动编程
- 数据结构-并查集
- 微软面试100题 之24栈的push、pop序列
- ajax笔记
- javaScript中小数相乘的问题
- 使用数组实现缓存例子
- 数据结构之二分查找法