Пример #1
0
        /// <summary>
        /// Returns whether the CIDR is in the right format.
        /// </summary>
        public static bool ValidCIDR(string cidr)
        {
            if (ValidIPv4(cidr.Split('/')[0])) //Make sure we only use IPv4 and not IPv6
            {
                try                            //In case the mask is in a wrong format.
                {
                    //IPNetwork automatically converts the CIDR to the correct format.
                    IPNetwork net = IPNetwork.Parse(cidr);

                    if (net.ToString() == cidr) //If no correction was made then the format was correct.
                    {
                        return(true);
                    }
                    else //If a correction was made.
                    {
                        return(false);
                    }
                }
                catch
                {
                    return(false);
                }
            }
            return(false);
        }
        public void IPNetwork_IPv6_HoleySubnet()
        {
            var network = IPAddress.Parse("ffff:f0f0:0f0f:248a:1010::");
            var result  = IPAddress.Parse($"{0xca5e & 0xffff:x4}:{0xca5e & 0xf0f0:x4}:{0xca5e & 0x0f0f:x4}:{0xca5e & 0xf248a:x4}:{0xca5e & 0x1010:x4}::");
            var test    = new IPNetwork(IPAddress.Parse("ca5e:ca5e:ca5e:ca5e:ca5e:ca5e:ca5e:ca5e"), network);

            Assert.AreEqual(network, test.Mask);
            Assert.AreEqual(result, test.Address);
            Assert.AreEqual(-1, test.Subnet);
            Assert.AreEqual($"{result}/{network}", test.ToString());
        }
        public void IPNetwork_IPv4_HoleySubnet()
        {
            var network = IPAddress.Parse("255.170.170.0");
            var result  = IPAddress.Parse("192.170.170.0");
            var test    = new IPNetwork(IPAddress.Parse("192.255.255.255"), network);

            Assert.AreEqual(network, test.Mask);
            Assert.AreEqual(result, test.Address);
            Assert.AreEqual(-1, test.Subnet);
            Assert.AreEqual($"{result}/{network}", test.ToString());
        }
Пример #4
0
        private static void PrintNetwork(ProgramContext ac, IPNetwork ipn)
        {
            using (var sw = new StringWriter())
            {
                if (ac.IPNetwork)
                {
                    sw.WriteLine("IPNetwork   : {0}", ipn.ToString());
                }
                if (ac.Network)
                {
                    sw.WriteLine("Network     : {0}", ipn.Network.ToString());
                }
                if (ac.Netmask)
                {
                    sw.WriteLine("Netmask     : {0}", ipn.Netmask.ToString());
                }
                if (ac.Cidr)
                {
                    sw.WriteLine("Cidr        : {0}", ipn.Cidr);
                }
                if (ac.Broadcast)
                {
                    sw.WriteLine("Broadcast   : {0}", ipn.Broadcast.ToString());
                }
                if (ac.FirstUsable)
                {
                    sw.WriteLine("FirstUsable : {0}", ipn.FirstUsable.ToString());
                }
                if (ac.LastUsable)
                {
                    sw.WriteLine("LastUsable  : {0}", ipn.LastUsable.ToString());
                }
                if (ac.Usable)
                {
                    sw.WriteLine("Usable      : {0}", ipn.Usable);
                }
                if (ac.Total)
                {
                    sw.WriteLine("Total       : {0}", ipn.Total);
                }

                Console.Write(sw.ToString());
            }
        }
Пример #5
0
        private void buttonGoogleIPHunter_Click(object sender, EventArgs e)
        {
            var files = Directory.GetFiles(@"G:\DxgWork\GitHub\GoogleIPHunter\trunk", "*.txt", SearchOption.AllDirectories);

            using (IPv4DataContext db = new IPv4DataContext())
            {
                foreach (var file in files)
                {
                    foreach (var s in File.ReadAllLines(file))
                    {
                        try
                        {
                            IPNetwork network = IPNetwork.Parse(s);
                            if (network.ToString() == s)
                            {
                                uint address = network.Network.ToUInt32();
                                if (!db.GoogleIPHunter.Any(f => f.Address == (long)address))
                                {
                                    db.GoogleIPHunter.InsertOnSubmit(new GoogleIPHunter()
                                    {
                                        Address = address, IPBlock = s
                                    });
                                    db.SubmitChanges();
                                    CodeSite.SendNote("新增 = {0}", s);
                                }
                            }
                            else
                            {
                                CodeSite.SendError(s);
                            }
                        }
                        catch
                        {
                            //CodeSite.SendException(s, ex);
                        }
                    }
                }
            }
        }
Пример #6
0
        private void buttonGoogleIP_Click(object sender, EventArgs e)
        {
            var sa = File.ReadAllLines("google ip duan.txt");

            using (IPv4DataContext db = new IPv4DataContext())
            {
                var list = db.GoogleIPDuan.ToList().Select(f => (uint)f.Address);
                foreach (var s in sa)
                {
                    try
                    {
                        IPNetwork network = IPNetwork.Parse(s);
                        if (network.ToString() == s)
                        {
                            uint address = network.Network.ToUInt32();
                            if (!list.Contains(address))
                            {
                                db.GoogleIPDuan.InsertOnSubmit(new GoogleIPDuan()
                                {
                                    Address = address, IPBlock = s
                                });
                                CodeSite.SendNote("新增 = {0}", s);
                            }
                        }
                        else
                        {
                            CodeSite.SendError(s);
                        }
                    }
                    catch (Exception ex)
                    {
                        CodeSite.SendException(s, ex);
                    }
                }
                db.SubmitChanges();
            }
        }
Пример #7
0
        public override int Run(string[] remainingArguments)
        {
            try
            {
                _uow.Networks.Create(
                    new tbl_Network
                {
                    Id         = Guid.NewGuid(),
                    IdentityId = _user.IdentityId,
                    Address    = _cidr.ToString(),
                    Action     = _actionType.ToString(),
                    Enabled    = true,
                    Created    = DateTime.UtcNow,
                });

                _uow.Commit();

                return(StandardOutput.FondFarewell());
            }
            catch (Exception ex)
            {
                return(StandardOutput.AngryFarewell(ex));
            }
        }
Пример #8
0
 /// <summary>
 /// Checks whether the specified network can be used. The following validations are performed: <para />
 /// - Address block not currently used. <para />
 /// - Address block does not overlap with any existing ones.
 /// </summary>
 private bool CanUseRange(IEnumerable <NetworkRange> storedRanges, IPNetwork network)
 {
     return
         (storedRanges.All(x => x.AddressRange != network.ToString()) &&
          !storedRanges.Any(x => IPNetwork.Parse(x.AddressRange).Overlap(network)));
 }
Пример #9
0
        private void checkGivenList(DataTable table)
        {
            int     totalCount = 0, failCount = 0;
            decimal processed = 0;

            try
            {
                table.Columns.Add("Result", Type.GetType("System.String"));
                table.Columns.Add("HasError", Type.GetType("System.String"));

                switch (cmbAction.SelectedItem.ToString())
                {
                case "SubnetCalculator":

                    if (!table.Columns.Contains("SUBNET"))
                    {
                        throw new Exception("'SUBNET' column has not found.");
                    }

                    if (!table.Columns.Contains("IP"))
                    {
                        throw new Exception("'IP' column has not found.");
                    }

                    DataTable  dtIpRanges    = new DataTable("dtIpRanges");
                    DataColumn newDataColumn = null;

                    newDataColumn = new DataColumn("SITE", typeof(System.String));
                    dtIpRanges.Columns.Add(newDataColumn);

                    newDataColumn = new DataColumn("VLAN", typeof(System.String));
                    dtIpRanges.Columns.Add(newDataColumn);

                    newDataColumn = new DataColumn("EXPLANATION", typeof(System.String));
                    dtIpRanges.Columns.Add(newDataColumn);

                    newDataColumn = new DataColumn("NETWORK", typeof(System.String));
                    dtIpRanges.Columns.Add(newDataColumn);

                    newDataColumn = new DataColumn("SUBNET", typeof(System.String));
                    dtIpRanges.Columns.Add(newDataColumn);

                    newDataColumn = new DataColumn("CIDR", typeof(System.String));
                    dtIpRanges.Columns.Add(newDataColumn);

                    newDataColumn = new DataColumn("IP", typeof(System.String));
                    dtIpRanges.Columns.Add(newDataColumn);

                    newDataColumn = new DataColumn("FileName", typeof(System.String));
                    newDataColumn.DefaultValue = openFileDialog.SafeFileName;
                    dtIpRanges.Columns.Add(newDataColumn);

                    newDataColumn = new DataColumn("SheetName", typeof(System.String));
                    dtIpRanges.Columns.Add(newDataColumn);

                    newDataColumn = new DataColumn("CreateUserIP", typeof(System.String));
                    newDataColumn.DefaultValue = this._localIPList.Count > 0 ? this._localIPList[0] : DBNull.Value.ToString();
                    dtIpRanges.Columns.Add(newDataColumn);

                    newDataColumn = new DataColumn("CreateUserTime", typeof(System.DateTime));
                    newDataColumn.DefaultValue = DateTime.Now;
                    dtIpRanges.Columns.Add(newDataColumn);

                    foreach (DataRow dr in table.Rows)
                    {
                        IPNetwork ipNetwork = null;
                        IPNetwork.TryParse(Convert.ToString(dr["IP"]), Convert.ToString(dr["SUBNET"]), out ipNetwork);

                        if (ipNetwork == null)
                        {
                            continue;
                        }

                        IPRanges ipRanges = new IPRanges(ipNetwork.ToString());

                        foreach (IPAddress ip in ipRanges.GetAllIP())
                        {
                            DataRow drRow2Export = dtIpRanges.NewRow();

                            drRow2Export["SITE"]        = dr["SITE"];
                            drRow2Export["VLAN"]        = dr["VLAN"];
                            drRow2Export["EXPLANATION"] = dr["EXPLANATION"];
                            drRow2Export["NETWORK"]     = dr["IP"];
                            drRow2Export["SUBNET"]      = dr["SUBNET"];
                            drRow2Export["CIDR"]        = Convert.ToString(ipNetwork.Cidr);
                            drRow2Export["IP"]          = Convert.ToString(ip);
                            drRow2Export["SheetName"]   = dr["SheetName"];

                            dtIpRanges.Rows.Add(drRow2Export);
                        }
                    }
                    try
                    {
                        SqlConnection IpConnection = new SqlConnection("Persist Security Info=False;Initial Catalog=VodafoneTesting;Application Name=SRChecker;Data Source=92.45.86.60,3495;;MultipleActiveResultSets=True;User=ebysa;Password=Eby342516");
                        IpConnection.Open();

                        if (1 == 0)    // First Time Use Only
                        {
                            using (SqlCommand command = new SqlCommand("Truncate Table MercurySubnetIPList", IpConnection))
                            {
                                command.ExecuteNonQuery();
                            }
                        }

                        using (SqlBulkCopy bulkCopy = new SqlBulkCopy(IpConnection))
                        {
                            bulkCopy.DestinationTableName =
                                "dbo.MercurySubnetIPList";
                            SqlBulkCopyColumnMapping mapID = null;

                            mapID = new SqlBulkCopyColumnMapping("SITE", "SITE");
                            bulkCopy.ColumnMappings.Add(mapID);

                            mapID = new SqlBulkCopyColumnMapping("VLAN", "VLAN");
                            bulkCopy.ColumnMappings.Add(mapID);

                            mapID = new SqlBulkCopyColumnMapping("EXPLANATION", "EXPLANATION");
                            bulkCopy.ColumnMappings.Add(mapID);

                            mapID = new SqlBulkCopyColumnMapping("NETWORK", "NETWORK");
                            bulkCopy.ColumnMappings.Add(mapID);

                            mapID = new SqlBulkCopyColumnMapping("SUBNET", "SUBNET");
                            bulkCopy.ColumnMappings.Add(mapID);

                            mapID = new SqlBulkCopyColumnMapping("IP", "IP");
                            bulkCopy.ColumnMappings.Add(mapID);

                            mapID = new SqlBulkCopyColumnMapping("CIDR", "CIDR");
                            bulkCopy.ColumnMappings.Add(mapID);

                            mapID = new SqlBulkCopyColumnMapping("FileName", "FileName");
                            bulkCopy.ColumnMappings.Add(mapID);

                            mapID = new SqlBulkCopyColumnMapping("SheetName", "SheetName");
                            bulkCopy.ColumnMappings.Add(mapID);

                            mapID = new SqlBulkCopyColumnMapping("CreateUserIP", "CreateUserIP");
                            bulkCopy.ColumnMappings.Add(mapID);

                            mapID = new SqlBulkCopyColumnMapping("CreateUserTime", "CreateUserTime");
                            bulkCopy.ColumnMappings.Add(mapID);

                            bulkCopy.WriteToServer(dtIpRanges);
                        }
                    }
                    catch (Exception exc)
                    {
                        //throw new Exception("DB Write Error: " + exc.Message);
                    }

                    txtResult.Text      = dtIpRanges.Rows.Count.ToString() + " Rows Added To dbo.MercurySubnetIPList Table";
                    txtResult.BackColor = Color.PaleGreen;

                    dtGridView.DataSource = dtIpRanges;
                    this._result          = dtIpRanges;

                    btnExport.Visible  = true;
                    dtGridView.Visible = true;

                    break;

                case "SRFileImport":

                    totalCount = 0;
                    failCount  = 0;

                    DataColumn newColumn = null;

                    newColumn = new DataColumn("FileName", typeof(System.String));
                    newColumn.DefaultValue = openFileDialog.SafeFileName;
                    table.Columns.Add(newColumn);

                    newColumn = new DataColumn("SRID", typeof(System.String));
                    newColumn.DefaultValue = txtSRID.Text;
                    table.Columns.Add(newColumn);

                    newColumn = new DataColumn("SROwner", typeof(System.String));
                    newColumn.DefaultValue = txtSROwner.Text;
                    table.Columns.Add(newColumn);

                    if (txtSRID.Text == string.Empty)
                    {
                        throw new Exception("'SR ID' is Required.");
                    }

                    if (txtSROwner.Text == string.Empty)
                    {
                        throw new Exception("'SR Owner' is Required.");
                    }

                    if (!table.Columns.Contains("Target_System_IP"))
                    {
                        throw new Exception("'Target_System_IP' column has not found.");
                    }

                    if (!table.Columns.Contains("Source_System_Ip"))
                    {
                        throw new Exception("'Source_System_Ip' column has not found.");
                    }

                    if (!table.Columns.Contains("Source_System_Name"))
                    {
                        throw new Exception("'Source_System_Name' column has not found.");
                    }

                    if (!table.Columns.Contains("Source_Customer_Info"))
                    {
                        throw new Exception("'Source_Customer_Info' column has not found.");
                    }

                    if (!table.Columns.Contains("Target_System_Name"))
                    {
                        throw new Exception("'Target_System_Name' column has not found.");
                    }

                    if (!table.Columns.Contains("Target_Customer_Info"))
                    {
                        throw new Exception("'Target_Customer_Info' column has not found.");
                    }

                    if (!table.Columns.Contains("TCP_Port"))
                    {
                        throw new Exception("'TCP_Port' column has not found.");
                    }

                    if (!table.Columns.Contains("UDP_Port"))
                    {
                        throw new Exception("'UDP_Port' column has not found.");
                    }

                    SqlConnection connection = new SqlConnection("Persist Security Info=False;Initial Catalog=VodafoneTesting;Application Name=SRChecker;Data Source=92.45.86.60,3495;;MultipleActiveResultSets=True;User=ebysa;Password=Eby342516");
                    connection.Open();

                    using (SqlCommand command = new SqlCommand("DELETE FROM MercuryFWSRDetails WHERE SR_ID = '" + txtSRID.Text + "'", connection))
                    {
                        command.ExecuteNonQuery();
                    }

                    using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection))
                    {
                        bulkCopy.DestinationTableName =
                            "dbo.MercuryFWSRDetails";
                        SqlBulkCopyColumnMapping mapID = null;

                        mapID = new SqlBulkCopyColumnMapping("Target_System_IP", "Target_System_IP");
                        bulkCopy.ColumnMappings.Add(mapID);

                        mapID = new SqlBulkCopyColumnMapping("Source_System_Ip", "Source_System_Ip");
                        bulkCopy.ColumnMappings.Add(mapID);

                        mapID = new SqlBulkCopyColumnMapping("Source_System_Name", "Source_System_Name");
                        bulkCopy.ColumnMappings.Add(mapID);

                        mapID = new SqlBulkCopyColumnMapping("Source_Customer_Info", "Source_Customer_Info");
                        bulkCopy.ColumnMappings.Add(mapID);

                        mapID = new SqlBulkCopyColumnMapping("Target_Customer_Info", "Target_Customer_Info");
                        bulkCopy.ColumnMappings.Add(mapID);

                        mapID = new SqlBulkCopyColumnMapping("Target_System_Name", "Target_System_Name");
                        bulkCopy.ColumnMappings.Add(mapID);

                        mapID = new SqlBulkCopyColumnMapping("TCP_Port", "TCP_Port");
                        bulkCopy.ColumnMappings.Add(mapID);

                        mapID = new SqlBulkCopyColumnMapping("UDP_Port", "UDP_Port");
                        bulkCopy.ColumnMappings.Add(mapID);

                        mapID = new SqlBulkCopyColumnMapping("SRID", "SR_ID");
                        bulkCopy.ColumnMappings.Add(mapID);

                        mapID = new SqlBulkCopyColumnMapping("FileName", "FileName");
                        bulkCopy.ColumnMappings.Add(mapID);

                        mapID = new SqlBulkCopyColumnMapping("SROwner", "RequestOwner");
                        bulkCopy.ColumnMappings.Add(mapID);

                        bulkCopy.WriteToServer(table);
                    }

                    txtResult.Text      = table.Rows.Count.ToString() + " Rows Added To MercuryFWSRDetails Table";
                    txtResult.BackColor = Color.PaleGreen;

                    dtGridView.DataSource = table;
                    this._result          = table;

                    btnExport.Visible  = false;
                    dtGridView.Visible = true;

                    connection.Close();

                    break;

                case "Tracert":
                {
                    table.Columns.Add("Source_System_Ip_Trace", Type.GetType("System.String"));
                    table.Columns.Add("Target_System_IP_Trace", Type.GetType("System.String"));

                    totalCount = 0;
                    failCount  = 0;
                    if (!table.Columns.Contains("Target_System_IP"))
                    {
                        throw new Exception("'Target_System_IP' column has not found.");
                    }

                    if (!table.Columns.Contains("Source_System_Ip"))
                    {
                        throw new Exception("'Source_System_Ip' column has not found.");
                    }

                    processed = 0;
                    foreach (DataRow dr in table.Rows)
                    {
                        string targetIP = string.Empty, sourceIP = string.Empty;
                        try
                        {
                            processed++;
                            prgBar.Value = Convert.ToInt32(((processed / Convert.ToDecimal(table.Rows.Count)) * 100));
                            Application.DoEvents();

                            targetIP = Convert.ToString(dr["Target_System_IP"]).Trim();

                            string[] targetIPList = null;

                            if (targetIP.Contains("\n"))
                            {
                                targetIPList = targetIP.Split('\n');
                            }

                            if (targetIP.Contains(","))
                            {
                                targetIPList = targetIP.Split(',');
                            }

                            if (targetIPList == null)
                            {
                                targetIPList    = new string[1];
                                targetIPList[0] = targetIP;
                            }

                            List <string> finalTargetIPList = new List <string>();

                            foreach (string item in targetIPList)
                            {
                                if (item.Contains("-"))
                                {
                                    string[] itemIPRange = item.Split('.');

                                    string[] itemRangeList = itemIPRange[3].Split('-');
                                    int      rangeStart    = Convert.ToInt32(itemRangeList[0]);
                                    int      rangeEnd      = Convert.ToInt32(itemRangeList[1]);

                                    for (int i = rangeStart; i <= rangeEnd; i++)
                                    {
                                        finalTargetIPList.Add(itemIPRange[0] + "." + itemIPRange[1] + "." + itemIPRange[2] + "." + i.ToString());
                                    }
                                }
                                else
                                {
                                    finalTargetIPList.Add(item);
                                }
                            }
                            foreach (string targetIPItem in finalTargetIPList)
                            {
                                string targetIPToTest = targetIPItem;
                                if (targetIPToTest.Substring(targetIPToTest.Length - 2, 2) == ".0")
                                {
                                    targetIPToTest = targetIPToTest.Substring(0, targetIPToTest.Length - 2) + ".1";
                                }
                                //TODO:Subnet Calculation. For Now Just .1 IP

                                totalCount++;

                                foreach (var entry in Tracert(targetIPToTest, 30, 5000))
                                {
                                    dr["Target_System_IP_Trace"] += CSVReader.NEWLINE + Convert.ToString(entry);

                                    switch (entry.ReplyStatus)
                                    {
                                    case IPStatus.TimedOut:
                                    case IPStatus.TtlExpired:
                                    case IPStatus.TtlReassemblyTimeExceeded:
                                    case IPStatus.TimeExceeded:
                                        continue;

                                    default:
                                        break;
                                    }
                                }
                            }

                            sourceIP = Convert.ToString(dr["Source_System_IP"]).Trim();

                            string[] sourceIPList = null;

                            if (sourceIP.Contains("\n"))
                            {
                                sourceIPList = sourceIP.Split('\n');
                            }

                            if (sourceIP.Contains(","))
                            {
                                sourceIPList = sourceIP.Split(',');
                            }

                            if (sourceIPList == null)
                            {
                                sourceIPList    = new string[1];
                                sourceIPList[0] = sourceIP;
                            }

                            List <string> finalSourceIPList = new List <string>();

                            foreach (string item in sourceIPList)
                            {
                                if (item.Contains("-"))
                                {
                                    string[] itemIPRange = item.Split('.');

                                    string[] itemRangeList = itemIPRange[3].Split('-');
                                    int      rangeStart    = Convert.ToInt32(itemRangeList[0]);
                                    int      rangeEnd      = Convert.ToInt32(itemRangeList[1]);

                                    for (int i = rangeStart; i <= rangeEnd; i++)
                                    {
                                        finalSourceIPList.Add(itemIPRange[0] + "." + itemIPRange[1] + "." + itemIPRange[2] + "." + i.ToString());
                                    }
                                }
                                else
                                {
                                    finalSourceIPList.Add(item);
                                }
                            }
                            foreach (string sourceIPItem in finalSourceIPList)
                            {
                                string sourceIPToTest = sourceIPItem;
                                if (sourceIPToTest.Substring(sourceIPToTest.Length - 2, 2) == ".0")
                                {
                                    sourceIPToTest = sourceIPToTest.Substring(0, sourceIPToTest.Length - 2) + ".1";
                                }
                                //TODO:Subnet Calculation. For Now Just .1 IP

                                totalCount++;

                                foreach (var entry in Tracert(sourceIPToTest, 30, 5000))
                                {
                                    dr["Source_System_IP_Trace"] += CSVReader.NEWLINE + Convert.ToString(entry);

                                    switch (entry.ReplyStatus)
                                    {
                                    case IPStatus.TimedOut:
                                    case IPStatus.TtlExpired:
                                    case IPStatus.TtlReassemblyTimeExceeded:
                                    case IPStatus.TimeExceeded:
                                        continue;

                                    default:
                                        break;
                                    }
                                }
                            }

                            dr["Result"]   = "Trace OK";
                            dr["HasError"] = "false";
                        }
                        catch (SocketException sExc)
                        {
                            failCount++;
                            dr["Result"]  += CSVReader.NEWLINE + " Trace Error: Target IP = " + targetIP + ", Source IP = " + sourceIP;
                            dr["HasError"] = "true";
                        }
                        catch (Exception gExc)
                        {
                            dr["Result"]  += CSVReader.NEWLINE + " Trace Error: Target IP = " + targetIP + ", Source IP = " + sourceIP;
                            dr["HasError"] = "true";
                        }
                    }

                    txtResult.Text = "Check Completed." + CSVReader.NEWLINE + "Total Valid Target IP : " + totalCount.ToString() + CSVReader.NEWLINE + "Fail Count : " + failCount.ToString() + CSVReader.NEWLINE + "Success Count : " + Convert.ToString(totalCount - failCount) + CSVReader.NEWLINE;
                    if (failCount > 0)
                    {
                        txtResult.BackColor = Color.PaleVioletRed;
                    }
                    else
                    {
                        txtResult.BackColor = Color.PaleGreen;
                    }

                    dtGridView.DataSource = table;
                    this._result          = table;

                    btnExport.Visible  = true;
                    dtGridView.Visible = true;

                    break;
                }

                case "Firewall":
                {
                    totalCount = 0;
                    failCount  = 0;
                    if (!table.Columns.Contains("Target_System_IP"))
                    {
                        throw new Exception("'Target_System_IP' column has not found.");
                    }



                    if (!table.Columns.Contains("TCP_Port"))
                    {
                        throw new Exception("'TCP_Port' column has not found.");
                    }

                    if (!table.Columns.Contains("Source_System_Ip"))
                    {
                        throw new Exception("'Source_System_Ip' column has not found.");
                    }

                    processed = 0;
                    foreach (DataRow dr in table.Rows)
                    {
                        processed++;
                        prgBar.Value = Convert.ToInt32(((processed / Convert.ToDecimal(table.Rows.Count)) * 100));
                        Application.DoEvents();

                        if (Convert.ToString(dr["Source_System_Ip"]) != "")
                        {
                            if (!_localIPList.Contains(Convert.ToString(dr["Source_System_Ip"]).Trim()))
                            {
                                txtResult.Text += "Warning: " + Convert.ToString(dr["Source_System_Ip"]) + " Source Ip Is Not In Local IP List." + CSVReader.NEWLINE;
                                dr["Result"]    = "Source Ip Is Not In Local IP List";
                                dr["HasError"]  = "true";

                                continue;
                            }
                        }

                        if (Convert.ToString(dr["Target_System_IP"]) == "" || Convert.ToString(dr["TCP_Port"]) == "")
                        {
                            dr["Result"]   = "Invalid Target IP or Port";
                            dr["HasError"] = "true";
                        }
                        else
                        {
                            try
                            {
                                int test = Convert.ToInt32(Convert.ToString(dr["TCP_Port"]).Replace(",", "").Replace("-", ""));
                            }
                            catch
                            {
                                throw new Exception("'TCP_Port' must be Integer");
                            }

                            List <int> portList = new List <int>();

                            string[] portRange = Convert.ToString(dr["TCP_Port"]).Split('-');
                            if (portRange.Length > 1)
                            {
                                int start = Convert.ToInt32(portRange[0]);
                                int end   = Convert.ToInt32(portRange[1]);

                                if (start <= end)
                                {
                                    while (start <= end)
                                    {
                                        portList.Add(start);
                                        start++;
                                    }
                                }
                                else
                                {
                                    portList.Add(start);
                                    portList.Add(end);
                                }
                            }
                            else
                            {
                                string[] portsWithComma = Convert.ToString(dr["TCP_Port"]).Split(',');
                                if (portsWithComma.Length > 1)
                                {
                                    foreach (string item in portsWithComma)
                                    {
                                        portList.Add(Convert.ToInt32(item));
                                    }
                                }
                                else
                                {
                                    portList.Add(Convert.ToInt32(dr["TCP_Port"]));
                                }
                            }

                            foreach (int port in portList)
                            {
                                totalCount++;

                                try
                                {
                                    string targetIP = Convert.ToString(dr["Target_System_IP"]).Trim();
                                    if (targetIP.Substring(targetIP.Length - 2, 2) == ".0")
                                    {
                                        targetIP = targetIP.Substring(0, targetIP.Length - 2) + ".1";
                                    }
                                    //TODO:Subnet Calculation. For Now Just .1 IP
                                    TcpClient client = new TcpClient(targetIP, port);
                                    dr["Result"]  += CSVReader.NEWLINE + " Success on Port: " + port.ToString();
                                    dr["HasError"] = "false";
                                }
                                catch (SocketException sExc)
                                {
                                    failCount++;
                                    dr["Result"]  += CSVReader.NEWLINE + " Error on Port:" + port.ToString();       // +" - " + sExc.Message;
                                    dr["HasError"] = "true";
                                }
                                catch (Exception gExc)
                                {
                                    dr["Result"]  += CSVReader.NEWLINE + " Error on Port:" + port.ToString();       // + " - " +gExc.Message;
                                    dr["HasError"] = "true";
                                }
                            }
                        }
                    }

                    txtResult.Text = "Check Completed." + CSVReader.NEWLINE + "Total Valid Target IP/Port : " + totalCount.ToString() + CSVReader.NEWLINE + "Fail Count : " + failCount.ToString() + CSVReader.NEWLINE + "Success Count : " + Convert.ToString(totalCount - failCount) + CSVReader.NEWLINE;
                    if (failCount > 0)
                    {
                        txtResult.BackColor = Color.PaleVioletRed;
                    }
                    else
                    {
                        txtResult.BackColor = Color.PaleGreen;
                    }

                    dtGridView.DataSource = table;
                    this._result          = table;

                    btnExport.Visible  = true;
                    dtGridView.Visible = true;
                }
                break;

                case "DNS":
                    //txtResult.Text = "DNS Not Implemented Yet";

                    if (!table.Columns.Contains("Host"))
                    {
                        throw new Exception("'Host' column has not found.");
                    }

                    totalCount = 0;
                    failCount  = 0;
                    processed  = 0;

                    table.Columns.Add("IP", Type.GetType("System.String"));
                    table.Columns.Add("HostName", Type.GetType("System.String"));

                    foreach (DataRow dr in table.Rows)
                    {
                        processed++;
                        prgBar.Value = Convert.ToInt32(((processed / Convert.ToDecimal(table.Rows.Count)) * 100));
                        Application.DoEvents();

                        totalCount++;

                        try
                        {
                            IPHostEntry ipE = Dns.GetHostByName(Convert.ToString(dr["Host"]).Trim());
                            dr["HostName"] = ipE.HostName;

                            //bool pingResult = PingHost(ipE.HostName);

                            IPAddress[] IpA = ipE.AddressList;
                            for (int i = 0; i < IpA.Length; i++)
                            {
                                dr["IP"] += IpA[i].ToString() + " ";
                            }
                            dr["HasError"] = "false";
                            dr["Result"]   = "Ping Result:" + PingHost(ipE.HostName).ToString();
                        }
                        catch (Exception exc)
                        {
                            dr["HostName"] = "No Such Host";
                            dr["HasError"] = "true";
                            dr["Result"]   = "Error";
                            failCount++;
                        }
                    }

                    txtResult.Text = "Check Completed." + CSVReader.NEWLINE + "Total Valid Host " + totalCount.ToString() + CSVReader.NEWLINE + "Fail Count : " + failCount.ToString() + CSVReader.NEWLINE + "Success Count : " + Convert.ToString(totalCount - failCount) + CSVReader.NEWLINE;
                    if (failCount > 0)
                    {
                        txtResult.BackColor = Color.PaleVioletRed;
                    }
                    else
                    {
                        txtResult.BackColor = Color.PaleGreen;
                    }
                    btnExport.Visible  = true;
                    dtGridView.Visible = true;

                    break;

                default:
                    txtResult.Text = "Invalid Action";
                    break;
                }
            }
            catch (Exception exc)
            {
                txtResult.Text      = "Error: " + exc.Message;
                txtResult.BackColor = Color.PaleVioletRed;
            }
        }
Пример #10
0
        private static void PrintNetwork(ProgramContext ac, IPNetwork ipn) {

            StringWriter sw = new StringWriter();
            if (ac.IPNetwork)   sw.WriteLine("IPNetwork   : {0}", ipn.ToString());
            if (ac.Network)     sw.WriteLine("Network     : {0}", ipn.Network.ToString());
            if (ac.Netmask)     sw.WriteLine("Netmask     : {0}", ipn.Netmask.ToString());
            if (ac.Cidr)        sw.WriteLine("Cidr        : {0}", ipn.Cidr);
            if (ac.Broadcast)   sw.WriteLine("Broadcast   : {0}", ipn.Broadcast.ToString());
            if (ac.FirstUsable) sw.WriteLine("FirstUsable : {0}", ipn.FirstUsable.ToString());
            if (ac.LastUsable)  sw.WriteLine("LastUsable  : {0}", ipn.LastUsable.ToString());
            if (ac.Usable)      sw.WriteLine("Usable      : {0}", ipn.Usable);
            if (ac.Total)       sw.WriteLine("Total       : {0}", ipn.Total);
            Console.Write(sw.ToString());
        }
Пример #11
0
        public void Test_Empty_Constructor()
        {
            var ipnetwork = new IPNetwork();

            Assert.AreEqual("0.0.0.0/0", ipnetwork.ToString());
        }
Пример #12
0
 public void String_should_match_expected()
 {
     m_result.ToString().ShouldEqual("17.34.51.0/24");
 }
Пример #13
0
 public void String_should_match_expected()
 {
     m_result.ToString().ShouldEqual(ExpectedString);
 }
 public void AddIngress(IPNetwork network, Protocol protocol, Ports beginPort, Ports endPort)
 {
     AddIngress(network.ToString(), protocol, beginPort, endPort);
 }
Пример #15
0
 public override string ToString()
 {
     return(Network.ToString() + " - " + Result.ToString());
 }