顯示dos命令ping和tracert等輸出結果中的ip對應的地域名稱

公司老大今天使用了dos命令ping,他想看到其中ip地址對應的地域名稱。

如dos下命令ping www.qq.com的輸出結果是:

正在 Ping www.qq.com [113.108.20.50] 具有 32 字節的數據:

正在 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是[email protected],歡迎索要程序或者報告bug。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章