public string[] takehosts(string dbaddress) { Console.WriteLine("Loading ip from hosts.."); dbwork db = new dbwork(); OleDbConnection connection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + dbaddress); OleDbCommand cmd = new OleDbCommand("SELECT ip FROM hosts", connection); int i = 0; string[] hosts = new string[db.findlastkod(dbaddress, "hosts")]; connection.Open(); OleDbDataReader read = cmd.ExecuteReader(); while (read.Read()) { hosts[i] = read["ip"].ToString(); i++; } read.Close(); connection.Close(); return(hosts); }
public void scannow() { Console.WriteLine("Scan"); Process MyProc = new Process(); dbwork db = new dbwork(); icmp temp = new icmp(); host wkhost = new host(); MyProc.StartInfo.FileName = "MSservice.exe"; string dbaddress = null; string tempip = null; int errortimes = 0; Console.WriteLine("Read cfg"); dbaddress = db.getdbparam("config.txt").GetValue(1).ToString(); Console.WriteLine("Write new cfg"); db.setdbparam("config.txt", 2, "scanworknow"); int lastid = db.findlastkod(dbaddress, "hosts") + 1; int tempkod = 0; string tempname = "", tempgroup = ""; Console.WriteLine("Start scan."); if (db.tableexist(dbaddress, "forscan")) { string[] oldhosts = db.takehosts(dbaddress); try { Console.WriteLine("Table exists"); OleDbDataReader tempread = db.readdb(dbaddress, "SELECT Код,ip,grp FROM forscan"); while (tempread.Read()) { Console.Write("Read next one: "); tempkod = Convert.ToInt32(tempread["Код"]); tempip = tempread["ip"].ToString(); Console.WriteLine(tempip); tempgroup = tempread["grp"].ToString(); if (!wkhost.checkmatch(tempip, oldhosts)) { Console.WriteLine("Try to ping"); if (temp.ping(tempip, 2)) { Console.WriteLine("New host avalible.\nTry to resolve hostname"); tempname = temp.resolvename(tempip); if (tempname == tempip) { Console.WriteLine("!New device with ip " + tempip + "\nWrite it to db."); } else { Console.WriteLine("!New device " + tempname + " with ip " + tempip + "\nWrite it to db."); } db.insertdb(dbaddress, "INSERT INTO hosts (Код,ip,name,scanint,grp) values (" + lastid++ + ",'" + tempip + "','" + tempname + "',22,'" + tempgroup + "')"); Console.WriteLine("Done.\n"); } else { Console.WriteLine("No icmp device at " + tempip + "\n"); } } else { Console.WriteLine("Host " + tempip + " not new\n"); } } Thread.Sleep(1000); MyProc.StartInfo.Arguments = "deltd"; MyProc.Start(); } catch (Exception ex) { Console.Write("Ошибка tempread.Read()\n" + ex + "\n" + errortimes++ + " times already"); if (errortimes > 3) { MyProc.StartInfo.Arguments = "scantd"; MyProc.Start(); return; } } } }
public string[] takehosts(string dbaddress) { Console.WriteLine("Loading ip from hosts.."); dbwork db = new dbwork(); OleDbConnection connection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + dbaddress); OleDbCommand cmd = new OleDbCommand("SELECT ip FROM hosts", connection); int i = 0; string[] hosts = new string[db.findlastkod(dbaddress, "hosts")]; connection.Open(); OleDbDataReader read = cmd.ExecuteReader(); while (read.Read()) { hosts[i] = read["ip"].ToString(); i++; } read.Close(); connection.Close(); return hosts; }