protected void Button1_Click(object sender, EventArgs e) { dbwork db = new dbwork(); IPAddress fromip = null; IPAddress toip = null; if (db.tableexist(dbaddress, "forscan")) { db.droptdforscandb(dbaddress, "forscan"); db.addtbforscandb(dbaddress, "forscan"); } else { db.addtbforscandb(dbaddress, "forscan"); } try { fromip = IPAddress.Parse(scanrangefrombox.Text); toip = IPAddress.Parse(scanrangetobox.Text); } catch { scanstate.Text = "Wrong ip"; } icmp temp = new icmp(); int re = 1, id = 1; re = System.Int32.Parse(retrycountbox.Text); string group = groupnamebox.Text; var ips = temp.ExpandIpRange(fromip, toip); foreach (var ip in ips) { id++; db.insertdb(dbaddress, "INSERT INTO forscan (Код,ip,grp) values (" + id + ",'" + ip + "','" + group + "')"); } // scanstate.Text = "Range send to check"; }
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; } } } }