public ActionResult Index() { var webGen = new WebGenerator(); var azureRegion = webGen.GetRegions(); var o365Service = webGen.GetO365Services(); ViewData["AppVersion"] = ConfigurationManager.AppSettings["AppVersion"]; ViewData["Regions"] = azureRegion; ViewData["O365services"] = o365Service; return(View()); }
internal static IPPrefix FindPrefix(IPPrefix p_inputPrefix) { var containingPrefix = new IPPrefix(); var webGen = new WebGenerator(); // Load the XML file into ranges //List<IPPrefix> ipPrefixes = Downloader.Download(); List <IPPrefix> ipPrefixes = webGen.CachedList; containingPrefix = Generator.GetContainingPrefix(p_inputPrefix, ipPrefixes); return(containingPrefix); }
public static void TimerJob([TimerTrigger("01:00:00")] TimerInfo timerInfo) //, TextWriter log) { Console.WriteLine("Startup of background refresh task... \n"); var webGen = new WebGenerator(); var prefixList = new List <IPPrefix>(); // Delete temp files... var filepath = Path.GetTempPath() + "\\ranges.txt"; if (File.Exists(filepath)) { File.Delete(filepath); Console.WriteLine("Deleted " + filepath + " succesfully"); } filepath = Path.GetTempPath() + "\\AzureRegions.txt"; if (File.Exists(filepath)) { File.Delete(filepath); Console.WriteLine("Deleted " + filepath + " succesfully"); } filepath = Path.GetTempPath() + "\\O365Services.txt"; if (File.Exists(filepath)) { File.Delete(filepath); Console.WriteLine("Deleted " + filepath + " succesfully"); } // retrieves, downloads and save the prefix list on temp storage (local disk) Console.WriteLine("Retreiving prefixes..."); prefixList = webGen.CachedList; Console.WriteLine("Retreiving Azure regions..."); webGen.GetRegions(); // will save region file on disk Console.WriteLine("Retreiving o365 services..."); webGen.GetO365Services(); // will save o365 file on disk Console.WriteLine("Background refresh tasks done for now. Will restart soon."); }
internal static string Generate(string[] regions, string[] o365services, string outputformat, bool complement, out int resultCount) { var resultString = string.Empty; resultCount = 0; var webGen = new WebGenerator(); var regionsAndServices = new string[(regions == null ? 0 : regions.Length) + (o365services == null ? 0 : o365services.Length)]; if (regions != null) { // add regions to the array Array.Copy(regions, 0, regionsAndServices, 0, regions.Length); } if (o365services != null) { // Add o365 services to the array Array.Copy(o365services, 0, regionsAndServices, regions == null ? 0 : regions.Length, o365services.Length); } var result = webGen.GetPrefixList(regionsAndServices.ToList(), complement); resultCount = result.Count(); switch (outputformat) { case "cisco-ios": resultString = _ciscoIOSPrefixBGPConfig + Environment.NewLine + string.Join(string.Empty, result.Select(r => "ip route " + r.ToStringLongMask() + " null0" + Environment.NewLine ).ToArray()); break; case "cisco-asa": resultString = _ciscoASAPrefixBGPConfig + Environment.NewLine; resultString = resultString + string.Join(string.Empty, result.Select(r => "route <interface_name> " + r.ToStringLongMask() + " <interface_name_IP>" + Environment.NewLine ).ToArray()); resultString = resultString + "!" + Environment.NewLine + "! Prefix-List to filter outgoing update to be restricted to the list below" + Environment.NewLine + "!" + Environment.NewLine; var prefixSeqNumber = 10; resultString = resultString + string.Join(string.Empty, result.Select(r => "prefix-list AZURE-OUT seq " + prefixSeqNumber++ *10 + " permit " + r.ReadableIP + "/" + r.Mask + Environment.NewLine).ToArray()); break; case "list-subnet-masks": resultString = string.Join(string.Empty, result.Select(r => r.ToStringLongMask() + Environment.NewLine).ToArray()); break; case "list-cidr": resultString = string.Join(string.Empty, result.Select(r => r.ReadableIP + "/" + r.Mask + Environment.NewLine).ToArray()); break; case "csv-subnet-masks": resultString = string.Join(string.Empty, result.Select(r => "\"" + r.ToStringLongMask() + "\",").ToArray()); // need to remove the last "," resultString = resultString.Substring(0, resultString.Length - 1); break; case "csv-cidr": resultString = string.Join(string.Empty, result.Select(r => "\"" + r.ReadableIP + "/" + r.Mask + "\",").ToArray()); // remove the last "\"," resultString = resultString.Substring(0, resultString.Length - 1); break; case "cisco-ios-route-list": resultString = _ciscoIOSPrefixRouteConfig + Environment.NewLine + string.Join(string.Empty, result.Select(r => "ip route " + r.ToStringLongMask() + " <selected_interface>" + Environment.NewLine ).ToArray()); break; case "cisco-ios-acl-list": resultString = _ciscoIOSPrefixACLConfig + string.Join(string.Empty, result.Select(r => " access-list permit ip <any or your VNet address space> " + r.ToStringLongMask() + Environment.NewLine).ToArray()); break; default: break; } return(resultString); }