Esempio n. 1
0
        /*
        private static void CleanGPSFiles(DirectoryInfo dir)
        {
            foreach (FileInfo f in dir.GetFiles("Kismet*.gps"))
            {
                string input;
                StreamReader fs2 = File.OpenText("c:\\documents and settings\\luke\\my documents\\kismetlogs\\" + f.Name);
                //Console.WriteLine("Processing " + f.Name);
                // GP:SD:TR:AC:KL:OG
                Regex theregex = new Regex(@"GP:SD:TR:AC:KL:OG", RegexOptions.Compiled);
                Regex theregex2 = new Regex(@"bssid");
                while((input=fs2.ReadLine()) != null)
                {

                    if(!theregex.IsMatch(input))
                    {
                        if(theregex2.IsMatch(input))
                        {
                            Console.WriteLine(input);
                        }
                    }
                }

            }
        }
        */
        public static void CreateKmlFile(gpsdata thegpsdata, string theconnectionstring)
        {
            thedata newdata = new thedata();
            //clientdata thecd = new clientdata();
            thegpsdata.FlushData();
            clientdata theclientdata = new clientdata();
            //Decimal thebestlon;
            //Decimal thebestlat;
            //Decimal thebestsignal;
            Console.WriteLine("Creating KML File");
            theclientdata.ConnectionString = theconnectionstring;
            newdata.ConnectionString = theconnectionstring;
            thegpsdata.ConnectionString = theconnectionstring;
            //thecd.ConnectionString=theconnectionstring;
            newdata.Where.NetType.Value = "infrastructure";
            ///newdata.Where.NetType.Operator = WhereParameter.Operand.Equal;
            newdata.Where.Encryption.Value = "None";
            ///newdata.Where.Encryption.Operator = WhereParameter.Operand.NotEqual;
            //string firstquery = "Select * from data where nettype=\"infrastructure\" and encryption=\"None\"";

            //Kisdata.Where.BSSID.Value="00:0F:3D:3E:41:9A";
            //Kisdata.Where.BSSID.Operator=WhereParameter.Operand.Equal;
            //Console.WriteLine(thegpsdata.Query.GenerateSQL());
            newdata.Query.Load();
            XmlTextWriter myXmlTextWriter = new XmlTextWriter(Application.StartupPath + "\\kismet.kml", null);
            myXmlTextWriter.Formatting = Formatting.Indented;
            myXmlTextWriter.WriteStartDocument(false);
            myXmlTextWriter.WriteStartElement("Folder");
            myXmlTextWriter.WriteElementString("name", null, "KismetLogger");
            myXmlTextWriter.WriteStartElement("Folder");
            myXmlTextWriter.WriteElementString("name", null, "Encrypted");
            //Console.WriteLine(newdata.RowCount);
            if (newdata.RowCount != 0)
            {
                newdata.Rewind();
                do
                {
                    thegpsdata.Where.Bssid.Value = newdata.BSSID;
                    ///thegpsdata.Where.Bssid.Operator = WhereParameter.Operand.Equal;
                    //Kisdata.Where.BSSID.Value="00:0F:3D:3E:41:9A";
                    //Kisdata.Where.BSSID.Operator=WhereParameter.Operand.Equal;
                    //Console.WriteLine(thegpsdata.Query.GenerateSQL());
                    thegpsdata.Query.Load();
                    //thebestlat = 0;
                    //thebestlon = 0;
                    //thebestsignal=-257;

                    if (thegpsdata.RowCount != 0)
                    {

                        thegpsdata.Rewind();
                        //do
                        //{
                        // 00:0D:72:2A:9A:39 Anne
                        /*
                        myXmlTextWriter.WriteStartElement("Placemark");
                        myXmlTextWriter.WriteElementString("name",null,newdata.ESSID);
                        myXmlTextWriter.WriteElementString("styleUrl",null,"#track");
                        myXmlTextWriter.WriteStartElement("Point");
                        myXmlTextWriter.WriteElementString("coordinates",null, thegpsdata.Lon+","+thegpsdata.Lat);
                        myXmlTextWriter.WriteEndElement();
                        myXmlTextWriter.WriteEndElement();
                        */
                        //	if(thegpsdata.Signal > thebestsignal)
                        //	{
                        //		thebestsignal=thegpsdata.Signal;
                        //		thebestlon=thegpsdata.Lon;
                        //		thebestlat=thegpsdata.Lat;
                        //	}
                        //Console.WriteLine(thegpsdata.Bssid);
                        //Console.WriteLine(thegpsdata.Lat);
                        //Console.WriteLine(thegpsdata.Lon);
                        //} while(thegpsdata.MoveNext());

                        string clientstring = "";
                        myXmlTextWriter.WriteStartElement("Placemark");
                        myXmlTextWriter.WriteElementString("name", null, newdata.ESSID);
                        myXmlTextWriter.WriteElementString("styleUrl", null, "#track");
                        myXmlTextWriter.WriteStartElement("description");
                        theclientdata.Where.Bssid.Value = newdata.BSSID;
                        ///theclientdata.Where.Bssid.Operator = WhereParameter.Operand.Equal;
                        theclientdata.Query.Load();
                        if (theclientdata.RowCount != 0)
                        {
                            theclientdata.Rewind();
                            clientstring = "<p>Number of clients=" + theclientdata.RowCount + "<p>";
                            do
                            {
                                clientstring += "<p>" + theclientdata.Clientmac + "-" + theclientdata.Oui + "</p>";

                            } while (theclientdata.MoveNext());
                        }

                        myXmlTextWriter.WriteCData(newdata.BSSID + "-" + newdata.Oui + "<p><b>First Seen: </b><br>" + newdata.FirstTime + "<br>" + "<BR><b> Last Seen </b>" + newdata.LastTime + clientstring);
                        myXmlTextWriter.WriteEndElement();
                        myXmlTextWriter.WriteStartElement("Style");
                        myXmlTextWriter.WriteStartElement("Icon");
                        myXmlTextWriter.WriteElementString("href", null, "root://icons/palette-3.png");
                        myXmlTextWriter.WriteElementString("x", null, "96");
                        myXmlTextWriter.WriteElementString("y", null, "160");
                        myXmlTextWriter.WriteElementString("w", null, "32");
                        myXmlTextWriter.WriteElementString("h", null, "32");
                        myXmlTextWriter.WriteEndElement();
                        myXmlTextWriter.WriteEndElement();
                        myXmlTextWriter.WriteStartElement("Point");
                        /*
                        myXmlTextWriter.WriteStartElement("Style");
                        if(newdata.Encryption=="None")
                        {
                            myXmlTextWriter.WriteElementString("icon",null,"node.open.png");
                        }
                        else
                        {
                            myXmlTextWriter.WriteElementString("icon",null,"node.closed.png");
                        }
                        myXmlTextWriter.WriteEndElement();
                        */
                        myXmlTextWriter.WriteElementString("coordinates", null, thegpsdata.Lon + "," + thegpsdata.Lat);
                        myXmlTextWriter.WriteEndElement();
                        myXmlTextWriter.WriteEndElement();
                    }

                } while (newdata.MoveNext());
            }
            myXmlTextWriter.WriteEndElement();
            newdata.Where.NetType.Value = "infrastructure";
            ///newdata.Where.NetType.Operator = WhereParameter.Operand.Equal;
            newdata.Where.Encryption.Value = "None";
            ///newdata.Where.Encryption.Operator = WhereParameter.Operand.Equal;

            //Kisdata.Where.BSSID.Value="00:0F:3D:3E:41:9A";
            //Kisdata.Where.BSSID.Operator=WhereParameter.Operand.Equal;
            //Console.WriteLine(thegpsdata.Query.GenerateSQL());
            newdata.Query.Load();
            myXmlTextWriter.WriteStartElement("Folder");
            myXmlTextWriter.WriteElementString("name", null, "Open");
            //Console.WriteLine(newdata.RowCount);
            if (newdata.RowCount != 0)
            {
                newdata.Rewind();
                do
                {
                    thegpsdata.Where.Bssid.Value = newdata.BSSID;
                    ///thegpsdata.Where.Bssid.Operator = WhereParameter.Operand.Equal;
                    //Kisdata.Where.BSSID.Value="00:0F:3D:3E:41:9A";
                    //Kisdata.Where.BSSID.Operator=WhereParameter.Operand.Equal;
                    //Console.WriteLine(thegpsdata.Query.GenerateSQL());
                    thegpsdata.Query.Load();
                    //thebestlat = 0;
                    //thebestlon = 0;
                    //thebestsignal=-257;
                    if (thegpsdata.RowCount != 0)
                    {
                        thegpsdata.Rewind();
                        //do
                        //{
                        // 00:0D:72:2A:9A:39 Anne
                        /*
                        myXmlTextWriter.WriteStartElement("Placemark");
                        myXmlTextWriter.WriteElementString("name",null,newdata.ESSID);
                        myXmlTextWriter.WriteElementString("styleUrl",null,"#track");
                        myXmlTextWriter.WriteStartElement("Point");
                        myXmlTextWriter.WriteElementString("coordinates",null, thegpsdata.Lon+","+thegpsdata.Lat);
                        myXmlTextWriter.WriteEndElement();
                        myXmlTextWriter.WriteEndElement();
                        */
                        //	if(thegpsdata.Signal > thebestsignal)
                        //	{
                        //		thebestsignal=thegpsdata.Signal;
                        //		thebestlon=thegpsdata.Lon;
                        //		thebestlat=thegpsdata.Lat;
                        //	}
                        //Console.WriteLine(thegpsdata.Bssid);
                        //Console.WriteLine(thegpsdata.Lat);
                        //Console.WriteLine(thegpsdata.Lon);
                        //} while(thegpsdata.MoveNext());
                        string clientstring = "";
                        myXmlTextWriter.WriteStartElement("Placemark");
                        myXmlTextWriter.WriteElementString("name", null, newdata.ESSID);
                        myXmlTextWriter.WriteElementString("styleUrl", null, "#track");
                        myXmlTextWriter.WriteStartElement("description");
                        theclientdata.Where.Bssid.Value = newdata.BSSID;
                        ///theclientdata.Where.Bssid.Operator = WhereParameter.Operand.Equal;
                        theclientdata.Query.Load();
                        if (theclientdata.RowCount != 0)
                        {
                            theclientdata.Rewind();
                            clientstring = "<p>Number of clients=" + theclientdata.RowCount + "<p>";
                            do
                            {
                                clientstring += "<p>" + theclientdata.Clientmac + "-" + theclientdata.Oui + "</p>";

                            } while (theclientdata.MoveNext());
                        }

                        myXmlTextWriter.WriteCData(newdata.BSSID + "-" + newdata.Oui + "<p><b>First Seen: </b><br>" + newdata.FirstTime + "<br>" + "<BR><b> Last Seen </b>" + newdata.LastTime + clientstring);
                        myXmlTextWriter.WriteEndElement();
                        myXmlTextWriter.WriteStartElement("Style");
                        if (newdata.Encryption == "None")
                        {
                            myXmlTextWriter.WriteStartElement("Icon");
                            myXmlTextWriter.WriteElementString("href", null, "root://icons/palette-3.png");
                            myXmlTextWriter.WriteElementString("x", null, "64");
                            myXmlTextWriter.WriteElementString("y", null, "96");
                            myXmlTextWriter.WriteElementString("w", null, "32");
                            myXmlTextWriter.WriteElementString("h", null, "32");
                            myXmlTextWriter.WriteEndElement();
                        }

                        myXmlTextWriter.WriteEndElement();
                        myXmlTextWriter.WriteStartElement("Point");
                        /*
                        myXmlTextWriter.WriteStartElement("Style");
                        if(newdata.Encryption=="None")
                        {
                            myXmlTextWriter.WriteElementString("icon",null,"node.open.png");
                        }
                        else
                        {
                            myXmlTextWriter.WriteElementString("icon",null,"node.closed.png");
                        }
                        myXmlTextWriter.WriteEndElement();
                        */
                        myXmlTextWriter.WriteElementString("coordinates", null, thegpsdata.Lon + "," + thegpsdata.Lat);
                        myXmlTextWriter.WriteEndElement();
                        myXmlTextWriter.WriteEndElement();
                    }

                } while (newdata.MoveNext());
            }
            myXmlTextWriter.WriteEndElement();
            /*
            thecd.LoadAll();
            thegpsdata.FlushData();
            do
            {
                thegpsdata.Where.Source.Value=thecd.Clientmac;
                thegpsdata.Where.Source.Operator=WhereParameter.Operand.Equal;
                //Kisdata.Where.BSSID.Value="00:0F:3D:3E:41:9A";
                //Kisdata.Where.BSSID.Operator=WhereParameter.Operand.Equal;
                //Console.WriteLine(thegpsdata.Query.GenerateSQL());
                thegpsdata.Query.Load();
                thebestlat = 0;
                thebestlon = 0;
                thebestsignal=-257;
                if(thegpsdata.RowCount !=0)
                {
                    thegpsdata.Rewind();
                    do
                    {
                        // 00:0D:72:2A:9A:39 Anne

                        myXmlTextWriter.WriteStartElement("Placemark");
                    myXmlTextWriter.WriteElementString("name",null,thecd.Bssid);
                    myXmlTextWriter.WriteElementString("styleUrl",null,"#track");
                    myXmlTextWriter.WriteStartElement("Point");
                    myXmlTextWriter.WriteElementString("coordinates",null, thebestlon+","+thebestlat);
                    myXmlTextWriter.WriteEndElement();
                    myXmlTextWriter.WriteEndElement();
                        if(thegpsdata.Signal > thebestsignal)
                        {
                            thebestsignal=thegpsdata.Signal;
                            thebestlon=thegpsdata.Lon;
                            thebestlat=thegpsdata.Lat;
                        }
                        //Console.WriteLine(thegpsdata.Bssid);
                        //Console.WriteLine(thegpsdata.Lat);
                        //Console.WriteLine(thegpsdata.Lon);
                    } while(thegpsdata.MoveNext());

                }

            }while(thecd.MoveNext());

            */

            myXmlTextWriter.Flush();
            myXmlTextWriter.Close();
        }