魔兽争霸3冰封王座地图下载

 找回密碼
 馬上注冊

QQ登錄

只需一步,快速開始

掃一掃,訪問微社區

分布式系統框架(V1.3) 輕松承載百億數據,千萬流量!討論專區 - 源碼下載 - 官方教程

HttpHelper萬能框架(V2.3-含.netcore) HttpHelper官方出品,無敵框架討論區 - 源碼下載 - 在線測試和代碼生成

HttpHelper爬蟲類(V2.0) 最牛的爬蟲類,沒有爬不到只有想不到 源碼 - 代碼生成器 - 討論區 - 教程- 例子

查看: 15929|回復: 34
打印 上一主題 下一主題

魔兽争霸3冰封王座手机能玩吗: [工具] Ping檢測工具下載(QQ皮膚實現附源碼)

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2012-10-26 10:53:23 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
最新版的Ping檢查工具下載地址  只要回復下本貼就可以看到下載地址了。
Ping檢查工具.zip (1.73 MB, 下載次數: 1602)
博客上也寫了不少文章,希望做一些組件和工具出來讓大家使用。也希望大家幫忙推廣,多提建議,在做技術的同時把一個技術和思想產品化其實我感覺挺好的
一直都有這個想法,而且也可以把技術慣串起來
   今天利用之前的C#仿QQ皮膚做界面,使用一些.net代碼來實現Ping的功能。這個工具我會慢慢更新希望大家支持先來秀秀圖片
1.項目基本結構
一共上兩個項目 一個是皮膚的類庫,一個是Ping功能的實現
以后我寫工具的話都會以皮膚為基礎,希望大家先下載使用

2.PIng界面
在這里你不但可以輸入IP地址,還可以輸入域名網址

查詢結果,超時時間,包大小,次數大家可以自己定義

雖然是個小的工具,但是也是算是走出了第一步吧。
工具里面是源代碼,大家可以直接使用Vs2010打開,使用和編輯。
在這上面我放上來一些得要的代碼方便查閱吧
[C#] 純文本查看 復制代碼
View Code 

/// <summary>
/// 類說明:PIng檢查類
/// 編碼日期:2011-11-17
/// 編 碼 人:  蘇飛
/// 聯系方式:361983679  Email:[url=mailto:[email protected]][email protected][/url]  Blogs:[url=//www.6251207.com]//www.6251207.com[/url]
/// </summary>
using System;
using System.Collections.Generic;
using System.Web;
using System.Text.RegularExpressions;
using System.Diagnostics;

namespace Ping檢查工具
{
    public class SpeedServices
    {
        #region codes

        //超時時間
        private const int TIME_OUT = 100;
        //包大小
        private const int PACKET_SIZE = 32;
        //Ping的次數
        private const int TRY_TIMES = 1;

        //取時間的正則
        private static Regex _reg = new Regex(@"時間=(.*?)ms", RegexOptions.Multiline | RegexOptions.IgnoreCase);
        Process proc_Ping = new Process();

        /// <summary>
        /// 得到速度值單位KB
        /// </summary>
        /// <param name="strCommandline">傳入的命令行</param>
        ///<param name="packetSize">包的大小</param>
        ///<returns>KB</returns>
        private float LaunchPing(string strCommandline, int packetSize)
        {
            SetProcess(strCommandline);
            proc_Ping.Start();
            string strBuffer = proc_Ping.StandardOutput.ReadToEnd();
            proc_Ping.Close();
            return ParseResult(strBuffer, packetSize);
        }

        /// <summary>
        /// 設屬性
        /// </summary>
        /// <param name="strCommandline">傳入的命令行</param>
        private void SetProcess(string strCommandline)
        {
            //命令行
            proc_Ping.StartInfo.Arguments = strCommandline;
            //是否使用操作系統外殼來執行
            proc_Ping.StartInfo.UseShellExecute = false;
            //是否在新窗口中啟動
            proc_Ping.StartInfo.CreateNoWindow = true;
            //exe名稱默認的在System32下
            proc_Ping.StartInfo.FileName = "ping.exe";
            proc_Ping.StartInfo.RedirectStandardInput = true;
            proc_Ping.StartInfo.RedirectStandardOutput = true;
            proc_Ping.StartInfo.RedirectStandardError = true;
        }

        /// <summary>
        /// 得到Ping的結果包括統計信息
        /// </summary>
        /// <param name="strCommandline">傳入的命令行</param>
        ///<param name="packetSize">包的大小</param>
        ///<returns>KB</returns>
        private string LaunchPingStr(string strCommandline, int packetSize)
        {
            SetProcess(strCommandline);
            proc_Ping.Start();
            string strBuffer = proc_Ping.StandardOutput.ReadToEnd();
            proc_Ping.Close();
            return strBuffer;
        }

        /// <summary>
        /// 取速度值
        /// </summary>
        /// <param name="strBuffer"></param>
        /// <param name="packetSize"></param>
        /// <returns></returns>
        private float ParseResult(string strBuffer, int packetSize)
        {
            if (strBuffer.Length < 1) return 0.0F;

            MatchCollection mc = _reg.Matches(strBuffer);
            if (mc == null || mc.Count < 1 || mc[0].Groups == null) return 0.0F;
            int avg;
            if (!int.TryParse(mc[0].Groups[1].Value, out avg)) return 0.0F;
            if (avg <= 0) return 1024.0F;

            return (float)packetSize / avg * 1000 / 1024;
        }

        #endregion 公共方法

        /// <summary>
        /// 得到網速
        /// </summary>
        /// <param name="strHost">主機名或ip</param>
        /// <returns>kbps/s</returns>
        public float PingKB(string strHost)
        {
            return LaunchPing(string.Format("{0} -n {1} -l {2} -w {3}", strHost, TRY_TIMES, PACKET_SIZE, TIME_OUT), PACKET_SIZE);
        }

        /// <summary>
        /// 得到Ping結果字符串
        /// </summary>
        /// <param name="strHost">主機名或ip</param>
        /// <param name="PacketSize">發送測試包大小</param>
        /// <param name="TimeOut">超時</param>
        /// <param name="TryTimes">測試次數</param>
        /// <returns>kbps/s</returns>
        public string GetPingStr(string strHost, int PacketSize, int TimeOut, int TryTimes)
        {
            return LaunchPingStr(string.Format("{0} -n {1} -l {2} -w {3}", strHost, TryTimes, PacketSize, TimeOut), PacketSize);
        }

        /// <summary>
        /// 根據傳入的參數返回Ping速度結果
        /// </summary>
        /// <param name="strHost">主機名或ip</param>
        /// <param name="PacketSize">發送測試包大小</param>
        /// <param name="TimeOut">超時</param>
        /// <param name="TryTimes">測試次數</param>
        /// <returns>kbps/s</returns>
        public float PingKB(string strHost, int PacketSize, int TimeOut, int TryTimes)
        {
            return LaunchPing(string.Format("{0} -n {1} -l {2} -w {3}", strHost, TryTimes, PacketSize, TimeOut), PacketSize);
        }
    }
}

本帖被以下淘專輯推薦:

推薦
 樓主| 發表于 2013-5-21 16:24:51 | 只看該作者
dcx 發表于 2013-5-21 16:14
我是下載的您的那個ping檢查工具壓縮包,里面有完整的代碼,我就想了解一下,在那里面能不能修改后,實現 ...

這個你看下代碼吧, 如果你看懂了,肯定能修改,如果你沒看明白我跟你說你也不一定能理解。再研究下吧。沒多少代碼。相信你應該能研究出來

板凳
發表于 2012-12-11 14:18:21 | 只看該作者
地板
 樓主| 發表于 2012-12-11 14:31:42 | 只看該作者
tenheng 發表于 2012-12-11 14:18
下載要積分不啊,大哥。

不要積分啊,注冊用戶可以直接下載的
5
發表于 2012-12-18 13:01:24 | 只看該作者
6
發表于 2013-1-5 14:29:56 | 只看該作者
7
發表于 2013-2-8 16:01:07 | 只看該作者
8
發表于 2013-5-21 16:10:37 | 只看該作者
   大神,您的那個ping程序,能不能將結果字符串里的丟包率和平均時延寫入數據庫?????
9
 樓主| 發表于 2013-5-21 16:12:03 | 只看該作者
dcx 發表于 2013-5-21 16:10
大神,您的那個ping程序,能不能將結果字符串里的丟包率和平均時延寫入數據庫?????

這個只是介紹Ping功能,不做數據存儲,文章中的代碼不是源碼,你可以自行修改

10
發表于 2013-5-21 16:14:37 | 只看該作者
站長蘇飛 發表于 2013-5-21 16:12
這個只是介紹Ping功能,不做數據存儲,文章中的代碼不是源碼,你可以自行修改

我是下載的您的那個ping檢查工具壓縮包,里面有完整的代碼,我就想了解一下,在那里面能不能修改后,實現將丟包率和時延寫入到數據庫里?


您需要登錄后才可以回帖 登錄 | 馬上注冊

本版積分規則

QQ|手機版|小黑屋|手機版|聯系我們|關于我們|廣告合作|魔兽争霸3冰封王座地图下载 ( 豫ICP備17001017號-1)

GMT+8, 2019-10-19 04:54

© 2017-2018

快速回復 魔兽争霸3冰封王座地图下载 返回列表
安格斯 三公棋牌 时时彩高频计划网 河北时时现场开奖结果 时时彩不倍投也能挣钱 北京赛车pk10直播官方 加拿大pc28计划软件 我玩龙虎赢了1百万 亿人娱乐 冰球突破一般什么时间放水 体彩排列三6码最大遗漏 抢庄牌九棋牌 彩票名字大全 色子玩法 时时网 时时彩后二稳赚技巧