コード例 #1
0
        private void OutputAction(pcap_data data)
        {
            var inst = new Ip_list_data
            {
                Source_ip   = data.source_ip,
                Source_port = data.source_port,
                Dest_ip     = data.dest_ip,
                Dest_port   = data.dest_port,
                Time        = data.time,
                Conut       = 1,
                Ttl         = data.ttl,
                Type        = (data.type == 6) ? "Tcp" : "Udp"
            };

            string destip   = lpv4 == data.source_ip ? data.dest_ip : data.source_ip;
            ushort destport = lpv4 == data.source_ip ? data.dest_port : data.source_port;

            string code = Toarray(data.p_data, data.len);
            string path = Directory.GetCurrentDirectory() + "\\cache";

            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
            File.AppendAllText(path + "\\" + destip + "." + destport.ToString() + ".txt",
                               data.time + " len " + data.len.ToString() + " " +
                               (data.source_ip == lpv4 ? "Send" : "Recv") + " " +
                               data.source_ip + ":" + data.source_port.ToString() + "-->" +
                               data.dest_ip + ":" + data.dest_port.ToString() + "\r" + code + "\n");

            ip_list_name.Dispatcher.Invoke(() =>
            {
                try
                {
                    foreach (var item in ip_list)
                    {
                        if (item.Source_ip == destip || item.Dest_ip == destip)
                        {
                            if (item.Source_port == destport || item.Dest_port == destport)
                            {
                                item.Conut++;
                                item.Time = inst.Time;
                                item.Ttl  = inst.Ttl;
                                return;
                            }
                        }
                    }
                    ip_list.Add(inst);
                }
                catch (Exception e)
                {
                    throw e;
                }
            });
        }
コード例 #2
0
 private void msegloop(object param)
 {
     clrtool.mytool tool = (clrtool.mytool)param;
     while (thread_br)
     {
         pcap_data data = tool.read();
         if (data.res == 0)
         {
             continue;
         }
         if (data.res == -1)
         {
             return;
         }
         OutputAction(data);
         // Console.WriteLine(data.time + " " + data.len.ToString() +" "+data.source_ip + ":" + data.source_port.ToString()+"-->"+data.dest_ip+":"+data.dest_port.ToString());
     }
 }