Esempio n. 1
0
        /// <summary>
        /// traceroute Thread
        /// </summary>
        private void thDoTraceRoute()
        {
            String msg = "";
            try
            {
                if (!ipAddress.Equals(textBox_host.Text))
                {
                    msg = textBox_host.Text + "[" + ipAddress + "]";
                }
                else
                {
                    msg = textBox_host.Text;
                }

                foreach (var entry in TraceRouteHelper.Tracert(ipAddress, int.Parse(numericUpDown_MaxHops.Value.ToString()), int.Parse(numericUpDown_Timeout.Value.ToString())))
                {
                    if (bIsStop)
                    {
                        break;
                    }
                    textBox_Logs.Invoke(new MethodInvoker(delegate()
                     {
                         TaobaoJsonData tjd = new TaobaoJsonData();
                         Boolean bisOk = false;
                         if ((null != entry.Address) && (!"".Equals(entry.Address)) && (!"N/A".Equals(entry.Address)))
                         {
                             try
                             {
                                 long ipLong = IPHelper.Ip2Long(entry.Address);
                                 bisOk = true;
                             }
                             catch (Exception e)
                             { }
                             if (bisOk)
                             {
                                 if (!ipWhoisCache.ContainsKey(entry.Address))
                                 {
                                     tjd = getIpWhoisFromTaobao(entry.Address);
                                 }
                                 else
                                 {
                                     bisOk = ipWhoisCache.TryGetValue(entry.Address, out tjd);
                                 }
                             }
                         }
                         StringBuilder sb = new StringBuilder();
                         sb.Append(entry.ToString());
                         sb.Append("|");
                         if (bisOk && (tjd.code == 0))
                         {
                             //如果正常
                             sb.Append(tjd.data.country + "\t" + tjd.data.area +"\t"+tjd.data.region+ "\t" + tjd.data.city + "\t" + tjd.data.isp);
                         }
                         textBox_Logs.AppendText(sb.ToString() + "\r\n");
                     }));
                }
            }
            catch (Exception e)
            {
                textBox_Logs.Invoke(new MethodInvoker(delegate()
                {
                    textBox_Logs.AppendText(e.ToString() + "\r\n");
                }));
            }
            finally
            {
                textBox_Logs.Invoke(new MethodInvoker(delegate()
                {
                    textBox_Logs.AppendText("Tracert " + msg + " complete.\r\n");
                    textBox_Logs.AppendText("-----------------------------------------------------------------\r\n");
                }));
                button_OK.Invoke(new MethodInvoker(delegate()
                {
                    button_OK.Enabled = true;
                }));
            }
        }
Esempio n. 2
0
 /// <summary>
 /// 从淘宝获取IP数据
 /// </summary>
 /// <param name="ip"></param>
 /// <returns></returns>
 TaobaoJsonData getIpWhoisFromTaobao(String ip)
 {
     string url = string.Format(UrlFomat, ip);
     string js = HttpHelper.HttpRequest(url, Encoding.UTF8);
     TaobaoJsonData tjd = new TaobaoJsonData();
     if ((js != null) && (js.Trim() != ""))
     {
         //writedata(js);
         tjd = Newtonsoft.Json.JsonConvert.DeserializeObject<TaobaoJsonData>(js);
         //将数据添加到静态缓存中
         tjd.data.ipLong = IPHelper.Ip2Long(ip);
         tjd.data.endIP = ip;
         tjd.data.endIPLong = tjd.data.ipLong;
         //增加到缓存中
         ipWhoisCache.Add(ip, tjd);
     }
     return tjd;
 }