From 5e514b5afc82d9dd97982fa80ffdbe7007922b85 Mon Sep 17 00:00:00 2001 From: Harald Wolff Date: Tue, 2 Apr 2019 01:25:44 +0200 Subject: [PATCH] WIP --- Program.cs | 64 +- SkyEntities.cs | 1 + crawl/Crawl.cs | 4 +- crawl/CrawlNetwork.cs | 11 +- crawl/CrawledHost.cs | 16 +- crawl/CrawledSubnet.cs | 7 +- crawl/Crawler.cs | 15 +- crawl/service/HTTP.cs | 92 + crawl/service/RFC1213.cs | 7 +- crawl/service/SNMP.cs | 17 +- crawl/service/SSH.cs | 11 +- entities/GlobalNetwork.cs | 104 +- entities/IntfIP.cs | 12 +- entities/NetworkInterface.cs | 12 +- entities/Node.cs | 8 +- entities/Subnet.cs | 9 +- http/CrawlerApi.cs | 34 +- http/NetworkApi.cs | 9 +- ln.skyscanner.csproj | 2 + mono_crash.1adb36dd9e.0.json | 2539 +++++++++++++++++++++++++++ templates/static/crawlerhosts.html | 2 +- templates/static/network/index.html | 4 +- 22 files changed, 2835 insertions(+), 145 deletions(-) create mode 100644 crawl/service/HTTP.cs create mode 100644 mono_crash.1adb36dd9e.0.json diff --git a/Program.cs b/Program.cs index 2d1291c..81a754d 100644 --- a/Program.cs +++ b/Program.cs @@ -8,33 +8,10 @@ // * // **/ using System; -using Renci.SshNet; -using ln.skyscanner.identify; -using System.Net; using System.Collections.Generic; -using ln.snmp.types; -using System.IO; using ln.snmp; -using ln.snmp.endpoint; -using System.Diagnostics; -using ln.perfdb.storage; using ln.logging; -using System.Security.Cryptography; -using ln.snmp.asn1; -using System.Linq; -using ln.types; -using System.Runtime.InteropServices; -using ln.snmp.rfc1213; -using ln.types.sync; -using ln.skyscanner.crawl; -using System.Threading; -using ln.skyscanner.crawl.tests; -using Castle.DynamicProxy; -using ln.types.odb; -using System.Net.Sockets; using ln.skyscanner.entities; -using ln.types.btree; -using ln.types.test; using ln.types.threads; using ln.types.net; @@ -52,7 +29,7 @@ namespace ln.skyscanner fileLogger.MaxLogLevel = LogLevel.INFO; Logger.Default.Backends.Add(fileLogger); - Logger.ConsoleLogger.MaxLogLevel = LogLevel.DEBUGDETAIL; + //Logger.ConsoleLogger.MaxLogLevel = LogLevel.DEBUGDETAIL; Initialize(); @@ -60,32 +37,31 @@ namespace ln.skyscanner skyScanner.Start(); return; + foreach (IntfIP iip in SkyScanner.Instance.Entities.intfIPCollection.Select("Network", Network4.Parse("10.255.9.16/29"))) + { + Console.WriteLine("INTF-IP ():{0}", iip); + } + + foreach (IntfIP iip in SkyScanner.Instance.Entities.intfIPCollection) + { + Console.WriteLine("INTF-IP: {0}", iip); + } + + IEnumerable nodes = skyScanner.Entities.nodeCollection; foreach (Node node in nodes) { Console.WriteLine("Node: {0}", node); - skyScanner.Entities.nodeCollection.Update(node); - foreach (Node checkNode in SkyScanner.Instance.Entities.nodeCollection.Select("PrimaryIP", node.PrimaryIP)) - { - Console.WriteLine("Node (lookup primary ip): {0}", checkNode); - if (!checkNode.ID.Equals(node)) - { - if ((checkNode.Interfaces.Count() == 0)) - { - SkyScanner.Instance.Entities.nodeCollection.Delete(checkNode); - } - } - } + Timing.Meassure("", () => + { + foreach (Node neighbor in SkyScanner.Instance.Entities.GlobalNetwork.FindNeighbors(node)) + { + Console.WriteLine(" Neighbor: {0}", neighbor); + } + }); - - //IEnumerable interfaces = Timing.Meassure("node.Interfaces",() => node.Interfaces); - //foreach (NetworkInterface intf in interfaces) - //{ - // Console.WriteLine(" Interface: {0}", intf); - //} - - Console.WriteLine(""); + Console.WriteLine(""); Console.WriteLine(""); } diff --git a/SkyEntities.cs b/SkyEntities.cs index e3168a7..5653667 100644 --- a/SkyEntities.cs +++ b/SkyEntities.cs @@ -40,6 +40,7 @@ namespace ln.skyscanner nodeCollection.EnsureIndex("PrimaryIP"); interfaceCollection.EnsureIndex("NodeID"); intfIPCollection.EnsureIndex("interfaceID"); + intfIPCollection.EnsureIndex("Network"); GlobalNetwork = new GlobalNetwork(this); } diff --git a/crawl/Crawl.cs b/crawl/Crawl.cs index e794cb1..ea9be00 100644 --- a/crawl/Crawl.cs +++ b/crawl/Crawl.cs @@ -100,10 +100,8 @@ namespace ln.skyscanner.crawl try { - while (servicesToCheck.Count > 0) RunServiceCheck(servicesToCheck[0]); - } catch (Exception e) { Logging.Log(LogLevel.ERROR, "Crawl.RunJob(): Caught exception: {0}",e); @@ -112,7 +110,7 @@ namespace ln.skyscanner.crawl Host.LastCheckTime = DateTime.Now - dateTime; Host.LastCheck = dateTime; - Host.NextCheck = dateTime + TimeSpan.FromHours(1); + Host.NextCheck = dateTime + TimeSpan.FromHours(24); bool updated = Crawler.CrawledHosts.Upsert( Host ); diff --git a/crawl/CrawlNetwork.cs b/crawl/CrawlNetwork.cs index 70f4b19..9dbd610 100644 --- a/crawl/CrawlNetwork.cs +++ b/crawl/CrawlNetwork.cs @@ -16,6 +16,7 @@ using ln.logging; using Newtonsoft.Json; using System.Linq; using ln.types.odb; +using ln.types.net; namespace ln.skyscanner.crawl { public class CrawlNetwork : PoolJob, IPersistent @@ -24,7 +25,7 @@ namespace ln.skyscanner.crawl public Crawler Crawler { get; } public CrawledSubnet Subnet { get; } - public CIDR Network { get; } + public Network4 Network { get; } @@ -36,7 +37,7 @@ namespace ln.skyscanner.crawl Name = String.Format("Subnet crawl {0}", subnet.Network); } - public CrawlNetwork(Crawler crawler, CrawledSubnet subnet,CIDR network) + public CrawlNetwork(Crawler crawler, CrawledSubnet subnet,Network4 network) { Crawler = crawler; Subnet = subnet; @@ -47,9 +48,9 @@ namespace ln.skyscanner.crawl public override void RunJob() { - if (Network.MaskWidth < 26) + if (Network.Width < 26) { - SplitJob(Network.Divide(26 - Network.MaskWidth).Select((n) => new CrawlNetwork(Crawler, Subnet, n)).ToArray()); + SplitJob(Network.Divide(26 - (int)Network.Width).Select((n) => new CrawlNetwork(Crawler, Subnet, n)).ToArray()); return; } @@ -62,7 +63,7 @@ namespace ln.skyscanner.crawl int count = 0; - foreach (CIDR ip in Network) + foreach (IPv4 ip in Network) { count++; diff --git a/crawl/CrawledHost.cs b/crawl/CrawledHost.cs index 0381231..aed96d2 100644 --- a/crawl/CrawledHost.cs +++ b/crawl/CrawledHost.cs @@ -15,6 +15,7 @@ using System.Linq; using ln.snmp.rfc1213; using LiteDB; using ln.types.odb; +using ln.types.net; namespace ln.skyscanner.crawl { @@ -24,13 +25,14 @@ namespace ln.skyscanner.crawl public readonly Guid ID = Guid.NewGuid(); public String Name { get; set; } - public CIDR PrimaryIP { get; set; } + public IPv4 PrimaryIP { get; set; } public String[] HWAddresses = new string[0]; public String PrimaryHWAddr => HWAddresses.Where((hwa) => hwa != null && !String.Empty.Equals(hwa)).FirstOrDefault(); - public CIDR[] IPAddresses { get; set; } = new CIDR[0]; - + public IPv4[] IPAddresses { get; set; } = new IPv4[0]; + public Network4[] Networks { get; set; } = new Network4[0]; + Dictionary hints = new Dictionary(); public DateTime FirstSeen { get; set; } @@ -46,13 +48,13 @@ namespace ln.skyscanner.crawl public CrawledHost() { Name = "noname"; - PrimaryIP = IPAddress.Any; + PrimaryIP = IPv4.ANY; } - public bool HasIP(CIDR ip) + public bool HasIP(IPv4 ip) { - foreach (CIDR _ip in IPAddresses) - if (_ip.Host.Equals(ip)) + foreach (IPv4 _ip in IPAddresses) + if (_ip.Equals(ip)) return true; return false; } diff --git a/crawl/CrawledSubnet.cs b/crawl/CrawledSubnet.cs index 391e505..9de64c7 100644 --- a/crawl/CrawledSubnet.cs +++ b/crawl/CrawledSubnet.cs @@ -12,6 +12,7 @@ using ln.types; using ln.types.odb; using System.Collections.Generic; using System.Linq; +using ln.types.net; namespace ln.skyscanner.crawl { public class CrawledSubnet @@ -19,7 +20,7 @@ namespace ln.skyscanner.crawl [DocumentID] Guid ID = Guid.NewGuid(); - public readonly CIDR Network; + public readonly Network4 Network; public String Name; public DateTime FirstSeen; @@ -33,9 +34,9 @@ namespace ln.skyscanner.crawl FirstSeen = DateTime.Now; } - public CrawledSubnet(CIDR cidr) + public CrawledSubnet(Network4 network) { - Network = cidr; + Network = network; Name = Network.ToString(); FirstSeen = DateTime.Now; } diff --git a/crawl/Crawler.cs b/crawl/Crawler.cs index 18f7284..c14d189 100644 --- a/crawl/Crawler.cs +++ b/crawl/Crawler.cs @@ -31,6 +31,7 @@ using ln.types.odb; using ln.skyscanner.crawl.service; using ln.skyscanner.crawl.tests; using LiteDB; +using ln.types.net; namespace ln.skyscanner.crawl { @@ -41,6 +42,7 @@ namespace ln.skyscanner.crawl CrawlService.RegisterService(new TCP(new int[] { 13080, 13022, 80, 22, 443, 13443 })); CrawlService.RegisterService(new SNMP(new string[] { "VhclfC7lfIojYZ", "Vhclf(C7$lfIojYZ", "ByFR4oW98hap", "qVy3hnZJ2fov" })); CrawlService.RegisterService(new RFC1213()); + CrawlService.RegisterService(new HTTP()); } public SkyScanner SkyScanner { get; } @@ -67,12 +69,12 @@ namespace ln.skyscanner.crawl public ODBCollection CrawledHosts => hosts; public ODBCollection CrawledSubnets => subnets; - - //private ODB dbCrawlPool; + public ODBCollection BlockedNetworks => blockedNetworks; private ODB odbDatabase; private ODBCollection hosts; private ODBCollection subnets; + private ODBCollection blockedNetworks; public Crawler(SkyScanner skyScanner) @@ -94,6 +96,7 @@ namespace ln.skyscanner.crawl odbDatabase = new ODB(BasePath); hosts = odbDatabase.GetCollection(); subnets = odbDatabase.GetCollection(); + blockedNetworks = odbDatabase.GetCollection("blockedNetworks"); CrawlerState = ComponentState.INITIALIZED; } @@ -168,7 +171,7 @@ namespace ln.skyscanner.crawl } } - public void EnsureSubnet(CIDR network) + public void EnsureSubnet(Network4 network) { FindSubnet(network); } @@ -195,7 +198,7 @@ namespace ln.skyscanner.crawl crawlThreadPool.Enqueue(crawlSubnet); } - public CrawledHost FindHostForIP(CIDR ip) + public CrawledHost FindHostForIP(IPv4 ip) { CrawledHost crawledHost = CrawledHosts.Where(host => host.HasIP(ip)).FirstOrDefault(); if (crawledHost == null) @@ -208,7 +211,7 @@ namespace ln.skyscanner.crawl } return crawledHost; } - public CrawledSubnet FindSubnet(CIDR network) + public CrawledSubnet FindSubnet(Network4 network) { CrawledSubnet sn = CrawledSubnets.Where(subnet => subnet.Network.Equals(network)).FirstOrDefault(); if (sn == null) @@ -238,7 +241,7 @@ namespace ln.skyscanner.crawl } if (CrawlSubnets) - foreach (CrawledSubnet subnet in CrawledSubnets.Where( sn => (sn.NextScan < (DateTime.Now - TimeSpan.FromDays(1)) && sn.Network.MaskWidth >= 24))) + foreach (CrawledSubnet subnet in CrawledSubnets.Where( sn => (sn.NextScan < DateTime.Now ) && sn.Network.Width >= 24)) { Crawl(subnet); } diff --git a/crawl/service/HTTP.cs b/crawl/service/HTTP.cs new file mode 100644 index 0000000..ddd9129 --- /dev/null +++ b/crawl/service/HTTP.cs @@ -0,0 +1,92 @@ +// /** +// * File: HTTP.cs +// * Author: haraldwolff +// * +// * This file and it's content is copyrighted by the Author and / or copyright holder. +// * Any use wihtout proper permission is illegal and may lead to legal actions. +// * +// * +// **/ +using System; +using System.Net.Http; +using ln.logging; +using ln.types.net; +using System.Linq; +using System.Net; +using System.IO; +namespace ln.skyscanner.crawl.service +{ + public class HTTP : CrawlService + { + public HTTP() + :base("http") + { + } + + public override bool Check(Crawl crawl) + { + foreach (int port in new int[] { 13080, 80 }) + { + if (crawl.CheckRequiredOption("tcp", port)) + { + if (CheckPort(crawl, port)) + return true; + } + } + return false; + } + + private bool CheckPort(Crawl crawl,int port) + { + foreach (IPv4 ip in crawl.Host.IPAddresses.Concat(new IPv4[] { crawl.Host.PrimaryIP }).Distinct()) + { + try + { + crawl.setState("Check HTTP at {0}:{1}",ip,port); + + HttpWebRequest webRequest = WebRequest.CreateHttp(String.Format("http://{0}:{1}", ip, port)); + webRequest.AllowAutoRedirect = true; + HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse(); + + String content = null; + + using (StreamReader reader = new StreamReader(response.GetResponseStream())) + { + content = reader.ReadToEnd(); + reader.Close(); + } + + crawl.Host.SetHint("http.ip", ip); + crawl.Host.SetHint("http.port", port); + crawl.Host.SetHint("http.status", response.StatusCode); + crawl.Host.SetHint("http.server", response.Server); + crawl.Host.SetHint("http.content", content); + + + return true; + } + catch (WebException e) + { + Logging.Log(e); + } + } + return false; + } + + + public override bool HostProvidesOption(Crawl crawl, params object[] parameters) + { + if (parameters.Length == 0) + return false; + + foreach (object oport in parameters) + { + int port = (int)oport; + if (!crawl.Host.GetHint(String.Format("http.{0}", port), false)) + return false; + } + return true; + } + + } +} diff --git a/crawl/service/RFC1213.cs b/crawl/service/RFC1213.cs index 5c469a2..b09f9ee 100644 --- a/crawl/service/RFC1213.cs +++ b/crawl/service/RFC1213.cs @@ -49,7 +49,12 @@ namespace ln.skyscanner.crawl.tests crawl.Host.IPAddresses = interfaces.SelectMany(intf => intf.IPAddresses).ToArray(); crawl.Host.HWAddresses = interfaces.Select(intf => intf.HWAddr).ToArray(); - crawl.Host.SetHint("rfc1213.interfaces",interfaces.Select(intf => string.Format("{0};{1};{2}",intf.Name,intf.HWAddr,String.Join(",",intf.IPAddresses.Select(ip=>ip.ToString())))).ToArray()); + crawl.Host.SetHint("rfc1213.interfaces", interfaces.Select(intf => string.Format("{0};{1};{2}", + intf.Name, + intf.HWAddr, + String.Join(",", intf.IPAddresses.Zip(intf.Netmasks,(ip,mask) => String.Format("{0}/{1}",ip.ToString(),mask.ToString()))) + )).ToArray() + ); crawl.Host.SetHint("rfc1213", true); } } catch (TimeoutException) diff --git a/crawl/service/SNMP.cs b/crawl/service/SNMP.cs index c2aa3aa..6fc368e 100644 --- a/crawl/service/SNMP.cs +++ b/crawl/service/SNMP.cs @@ -16,6 +16,7 @@ using ln.snmp.types; using System.Runtime.Remoting.Messaging; using ln.skyscanner.crawl.service; using System.Linq; +using ln.types.net; namespace ln.skyscanner.crawl.tests { public class SNMP : CrawlService @@ -71,9 +72,9 @@ namespace ln.skyscanner.crawl.tests private bool TestSnmpV3(CrawledHost crawledHost) { - CIDR[] ips = crawledHost.IPAddresses.Concat(new CIDR[] { crawledHost.PrimaryIP }).Distinct().ToArray(); + IPv4[] ips = crawledHost.IPAddresses.Concat(new IPv4[] { crawledHost.PrimaryIP }).Distinct().ToArray(); - foreach (CIDR ip in ips) + foreach (IPv4 ip in ips) { using (USMEndpoint v3endpoint = new USMEndpoint(SNMPEngine.DefaultEngine, new IPEndPoint(ip, 161))) { @@ -89,7 +90,6 @@ namespace ln.skyscanner.crawl.tests { crawledHost.SetHint("snmp.version", 3); - bool replied = false; int c = 0; foreach (string community in defaultCommunities) @@ -114,6 +114,7 @@ namespace ln.skyscanner.crawl.tests } catch (TimeoutException) { + return false; } catch (SnmpError) { @@ -128,9 +129,9 @@ namespace ln.skyscanner.crawl.tests private bool TestSnmpV2(CrawledHost crawledHost) { - CIDR[] ips = crawledHost.IPAddresses.Concat(new CIDR[] { crawledHost.PrimaryIP }).Distinct().ToArray(); + IPv4[] ips = crawledHost.IPAddresses.Concat(new IPv4[] { crawledHost.PrimaryIP }).Distinct().ToArray(); - foreach (CIDR ip in ips) + foreach (IPv4 ip in ips) { using (SnmpV2Endpoint v2endpoint = new SnmpV2Endpoint(SNMPEngine.DefaultEngine, new IPEndPoint(crawledHost.PrimaryIP, 161))) { @@ -162,9 +163,9 @@ namespace ln.skyscanner.crawl.tests private bool TestSnmpV1(CrawledHost crawledHost) { - CIDR[] ips = crawledHost.IPAddresses.Concat(new CIDR[] { crawledHost.PrimaryIP }).Distinct().ToArray(); + IPv4[] ips = crawledHost.IPAddresses.Concat(new IPv4[] { crawledHost.PrimaryIP }).Distinct().ToArray(); - foreach (CIDR ip in ips) + foreach (IPv4 ip in ips) { using (SnmpV1Endpoint v1endpoint = new SnmpV1Endpoint(SNMPEngine.DefaultEngine, new IPEndPoint(crawledHost.PrimaryIP, 161))) { @@ -237,7 +238,7 @@ namespace ln.skyscanner.crawl.tests public static SnmpInterface GetSnmpInterface(CrawledHost crawledHost) { int snmpVersion = crawledHost.GetHint("snmp.version", -1); - CIDR snmpAddress = crawledHost.GetHint("snmp.address", crawledHost.PrimaryIP); + IPv4 snmpAddress = crawledHost.GetHint("snmp.address", crawledHost.PrimaryIP); switch (snmpVersion) { diff --git a/crawl/service/SSH.cs b/crawl/service/SSH.cs index e90b58b..ad31a9b 100644 --- a/crawl/service/SSH.cs +++ b/crawl/service/SSH.cs @@ -12,6 +12,7 @@ using Renci.SshNet; using ln.types; using Renci.SshNet.Common; using System.Net.Sockets; +using ln.types.net; namespace ln.skyscanner.crawl.tests { public static class SSH @@ -37,11 +38,11 @@ namespace ln.skyscanner.crawl.tests public static bool CanConnect(CrawledHost crawledHost) { int sshPort = crawledHost.GetHint("ssh.port", -1); - CIDR sshIP = crawledHost.GetHint("ssh.ip", null); + IPv4 sshIP = crawledHost.GetHint("ssh.ip", null); string sshUser = crawledHost.GetHint("ssh.login", null); string sshPassword = crawledHost.GetHint("ssh.password", null); - if ((sshPort == -1) || !CanConnect(crawledHost,sshIP.Host,sshPort,sshUser,sshPassword)) + if ((sshPort == -1) || !CanConnect(crawledHost,sshIP,sshPort,sshUser,sshPassword)) { if (!Scan(crawledHost)) { @@ -58,7 +59,7 @@ namespace ln.skyscanner.crawl.tests private static bool Scan(CrawledHost crawledHost) { - foreach (CIDR ip in crawledHost.IPAddresses) + foreach (IPv4 ip in crawledHost.IPAddresses) { foreach (int port in new int[] { 13022, 22 }) { @@ -66,7 +67,7 @@ namespace ln.skyscanner.crawl.tests { foreach (string password in defaultPasswords) { - if (CanConnect(crawledHost, ip.Host, port, "skytron", password, true)) + if (CanConnect(crawledHost, ip, port, "skytron", password, true)) return true; } } catch (SocketException) @@ -78,7 +79,7 @@ namespace ln.skyscanner.crawl.tests return false; } - private static bool CanConnect(CrawledHost crawledHost, CIDR host, int port, string username, string password,bool throwe = false) + private static bool CanConnect(CrawledHost crawledHost, IPv4 host, int port, string username, string password,bool throwe = false) { using (TcpClient tcp = new TcpClient()) { diff --git a/entities/GlobalNetwork.cs b/entities/GlobalNetwork.cs index 033f428..c753df9 100644 --- a/entities/GlobalNetwork.cs +++ b/entities/GlobalNetwork.cs @@ -40,7 +40,7 @@ namespace ln.skyscanner.entities SkyEntities = skyEntities; } - public void EnsureSubnet(CIDR network) + public void EnsureSubnet(Network4 network) { SkyScanner.Crawler.EnsureSubnet(network); @@ -58,35 +58,39 @@ namespace ln.skyscanner.entities return SkyEntities.nodeCollection.Select(id); } - public Subnet FindSubnetForHost(CIDR host) + public Subnet FindSubnetForIP(IPv4 ip) { - return SkyEntities.subnetCollection.Select(net => net.Network.Contains(host)).FirstOrDefault(); + return SkyEntities.subnetCollection.Select(net => net.Network.Contains(ip)).FirstOrDefault(); } - public IEnumerable FindHostsInSubnet(CIDR network) + public IEnumerable FindHostsInSubnet(Network4 network) { - IntfIP[] intfIPs = SkyEntities.intfIPCollection.Select((ip) => ip.IP.In(network)).ToArray(); - NetworkInterface[] networkInterfaces = intfIPs.Select((iip) => iip.NetworkInterface).Where((i)=>i!=null).Distinct().ToArray(); + IntfIP[] intfIPs = SkyEntities.intfIPCollection.Select("Network",network).ToArray(); + NetworkInterface[] networkInterfaces = intfIPs.Select((iip) => iip.NetworkInterface).ToArray(); + Node[] nodes = SkyEntities.nodeCollection.Select(networkInterfaces.Select((ni) => new ODBGuid(ni.NodeID))).ToArray(); + return nodes; } public IEnumerable FindNeighbors(Node node) { HashSet nodes = new HashSet(); - foreach (Node neighbor in node.IPAdresses.SelectMany( - (ip) => Timing.Meassure("FindHostsInSubnet", () => - FindHostsInSubnet(ip) - ) - )) - nodes.Add(neighbor); + + foreach (Network4 network in node.Networks) + { + foreach (Node neighbor in FindHostsInSubnet(network)) + { + nodes.Add(neighbor); + } + } return nodes; } - public Node FindNodeByIP(IEnumerable ips) + public Node FindNodeByIP(IEnumerable ips) { - foreach (CIDR ip in ips) + foreach (IPv4 ip in ips) { Node node = FindNodeByIP(ip); if (node != null) @@ -94,17 +98,17 @@ namespace ln.skyscanner.entities } return null; } - public Node FindNodeByIP(CIDR ip) - { - ip = ip.Host; - /* - * ToDo: Alternative Implementation - * a) higher performance (use indexing) - * b) fix bug: Node not found if no interface ips exist... - */ - IntfIP _iip = SkyEntities.intfIPCollection.Where((iip) => iip.IP.Host.Equals(ip)).FirstOrDefault(); - return _iip?.NetworkInterface?.Node; - } + //public Node FindNodeByIP(CIDR ip) + //{ + // ip = ip.Host; + // /* + // * ToDo: Alternative Implementation + // * a) higher performance (use indexing) + // * b) fix bug: Node not found if no interface ips exist... + // */ + // IntfIP _iip = SkyEntities.intfIPCollection.Where((iip) => iip.IP.Host.Equals(ip)).FirstOrDefault(); + // return _iip?.NetworkInterface?.Node; + //} public Node FindNodeByIP(IPv4 ip) { @@ -196,30 +200,29 @@ namespace ln.skyscanner.entities SkyEntities.interfaceCollection.Upsert(networkInterface); - CIDR[] crawledIPs = fields[2].Split(',').Where((sip) => !String.Empty.Equals(sip)).Select((sip) => CIDR.Parse(sip)).ToArray(); - IntfIP[] currentIPs = networkInterface.IPs.ToArray(); + IPv4[][] crawledIPs = fields[2].Split(',').Where((sip) => !String.Empty.Equals(sip)) + .Select((sip) => sip.Split('/').Select(ip => IPv4.Parse(ip)).ToArray()).ToArray(); - foreach (CIDR crawledIP in crawledIPs) + IntfIP[] currentIPs = networkInterface.ConfiguredIPs.ToArray(); + + foreach (IPv4[] crawledIP in crawledIPs) { int n; for (n=0; n < currentIPs.Length; n++) - if (currentIPs[n].IP.Equals(crawledIP)) + if (currentIPs[n].IP.Equals(crawledIP[0])) break; if (n == currentIPs.Length) { - IntfIP miss = new IntfIP(networkInterface, crawledIP); + IntfIP miss = new IntfIP(networkInterface, crawledIP[0], new Network4(crawledIP[0], crawledIP[1])); SkyEntities.intfIPCollection.Upsert(miss); } } foreach (IntfIP iip in currentIPs) { - CIDR ip = iip.IP; + IPv4 ip = iip.IP; - if (crawledIPs.Contains(ip)) - { - } - else + if (!crawledIPs.Select((ipl)=>ipl[0]).Contains(ip)) { SkyEntities.intfIPCollection.Delete(iip); } @@ -234,7 +237,7 @@ namespace ln.skyscanner.entities String.Format("ssh://{0}:{1}@{2}:{3}", crawledHost.GetHint("ssh.login"), crawledHost.GetHint("ssh.password"), - crawledHost.GetHint("ssh.ip"), + crawledHost.GetHint("ssh.ip"), crawledHost.GetHint("ssh.port") ) ) @@ -242,11 +245,36 @@ namespace ln.skyscanner.entities } - foreach (CIDR ip in node.IPAdresses) + node.RemoveURI("http"); + if (crawledHost.GetHint("http.port",-1) != -1) { - EnsureSubnet(ip.Network); + node.AddURI(new URI(String.Format("http://{0}:{1}", + crawledHost.GetHint("http.ip", null), + crawledHost.GetHint("http.port")) + )); } + + string httpIndex = crawledHost.GetHint("http.content", ""); + + if (httpIndex.Contains("RouterOS router configuration page")) + { + node.Vendor = "MicroTik"; + } + + if (crawledHost.GetHint("snmp.orids",new string[0]).Contains("1.3.6.1.4.1.41112")) + { + node.Vendor = "Ubiquity"; + } + + + + + + + foreach (Network4 network in node.Networks) + EnsureSubnet(network); + node.LastUpdate = DateTime.Now; SkyEntities.nodeCollection.Upsert(node); } diff --git a/entities/IntfIP.cs b/entities/IntfIP.cs index 8f02afd..56cb725 100644 --- a/entities/IntfIP.cs +++ b/entities/IntfIP.cs @@ -11,6 +11,7 @@ using System; using ln.types.odb; using ln.types; using Newtonsoft.Json; +using ln.types.net; namespace ln.skyscanner.entities { public class IntfIP @@ -23,18 +24,23 @@ namespace ln.skyscanner.entities [JsonIgnore] public NetworkInterface NetworkInterface => SkyScanner.Instance.Entities.interfaceCollection.Select(interfaceID); - public CIDR IP { get; private set; } + public IPv4 IP { get; private set; } + public Network4 Network { get; private set; } public IntfIP() { } - public IntfIP(NetworkInterface networkInterface,CIDR ip) + public IntfIP(NetworkInterface networkInterface,IPv4 ip,Network4 network) { interfaceID = networkInterface.ID; IP = ip; + Network = network; } - + public override string ToString() + { + return string.Format("[IntfIP ID={0} IP={1,18} Network={2}]", ID, IP, Network); + } } diff --git a/entities/NetworkInterface.cs b/entities/NetworkInterface.cs index be32853..7147e28 100644 --- a/entities/NetworkInterface.cs +++ b/entities/NetworkInterface.cs @@ -15,6 +15,7 @@ using ln.types.odb; using Newtonsoft.Json; using LiteDB; using ln.logging; +using ln.types.net; namespace ln.skyscanner.entities { public class NetworkInterface @@ -34,8 +35,7 @@ namespace ln.skyscanner.entities public string Name { get; private set; } = ""; public string HWAddress { get; set; } = ""; - //public CIDR[] IPs { get; set; } = new CIDR[0]; - public IEnumerable IPs => SkyScanner.Instance.Entities.intfIPCollection.Select("interfaceID", ID); + public IEnumerable ConfiguredIPs => SkyScanner.Instance.Entities.intfIPCollection.Select("interfaceID", ID); private NetworkInterface() { } @@ -46,13 +46,11 @@ namespace ln.skyscanner.entities Name = name; } - public bool HasIP(CIDR ip) + public bool HasIP(IPv4 ip) { - ip = ip.Host; - - foreach (IntfIP ifip in IPs) + foreach (IntfIP ifip in ConfiguredIPs) { - if (ifip.IP.Host.Equals(ip)) + if (ifip.IP.Equals(ip)) return true; } return false; diff --git a/entities/Node.cs b/entities/Node.cs index 6f46ee4..6219992 100644 --- a/entities/Node.cs +++ b/entities/Node.cs @@ -39,8 +39,12 @@ namespace ln.skyscanner.entities public string ProductLine { get; set; } + [JsonIgnore] public IEnumerable Interfaces => SkyScanner.Instance.Entities.interfaceCollection.Select("NodeID", ID); - public IEnumerable IPAdresses => Interfaces.SelectMany(intf => intf.IPs).Select((iip) => iip.IP).Distinct(); + [JsonIgnore] + public IEnumerable IPAdresses => Interfaces.SelectMany(intf => intf.ConfiguredIPs.Select(nip => nip.IP)); + [JsonIgnore] + public IEnumerable Networks => Interfaces.SelectMany(intf => intf.ConfiguredIPs.Select(nip => nip.Network)); private HashSet uris = new HashSet(); @@ -48,7 +52,7 @@ namespace ln.skyscanner.entities { } - public Node(CIDR primaryIP) + public Node(IPv4 primaryIP) { PrimaryIP = primaryIP; Name = PrimaryIP.ToString(); diff --git a/entities/Subnet.cs b/entities/Subnet.cs index 75233df..99e0057 100644 --- a/entities/Subnet.cs +++ b/entities/Subnet.cs @@ -12,6 +12,7 @@ using ln.types; using ln.types.odb; using System.Collections.Generic; using System.Linq; +using ln.types.net; namespace ln.skyscanner.entities { public class Subnet : Persistent @@ -21,7 +22,7 @@ namespace ln.skyscanner.entities [DocumentID] public Guid ID { get; private set; } = Guid.NewGuid(); - public readonly CIDR Network; + public readonly Network4 Network; public String Name; public DateTime FirstSeen; @@ -29,16 +30,16 @@ namespace ln.skyscanner.entities public bool AutoScan { get; set; } - public IEnumerable AttachedInterfaces => SkyEntities.interfaceCollection.Where((intf) => Network.Contains(intf.IPs.Select((iip)=>iip.IP))); + public IEnumerable AttachedInterfaces => SkyEntities.interfaceCollection.Where((intf) => Network.Contains(intf.ConfiguredIPs.Select((iip)=>iip.IP))); public IEnumerable AttachedNodes => AttachedInterfaces.Select(intf => intf.Node).Distinct(); private Subnet() { } - public Subnet(CIDR cidr) + public Subnet(Network4 network) { - Network = cidr; + Network = network; Name = Network.ToString(); FirstSeen = DateTime.Now; } diff --git a/http/CrawlerApi.cs b/http/CrawlerApi.cs index c19ecc4..8e545e5 100644 --- a/http/CrawlerApi.cs +++ b/http/CrawlerApi.cs @@ -6,6 +6,7 @@ using ln.skyscanner.crawl; using ln.types; using System.Net; using ln.types.threads; +using ln.types.net; namespace ln.skyscanner.http { @@ -36,13 +37,13 @@ namespace ln.skyscanner.http [Callable] public CrawledHost GetHostByIP(string _ip) { - return SkyScanner.Crawler.FindHostForIP(CIDR.Parse(_ip)); + return SkyScanner.Crawler.FindHostForIP(IPv4.Parse(_ip)); } [Callable] public CrawledHost AddHost(string _ip, string name) { - CIDR ip = CIDR.Parse(_ip); + IPv4 ip = IPv4.Parse(_ip); CrawledHost host = SkyScanner.Crawler.FindHostForIP(ip); host.Name = name; SkyScanner.Crawler.CrawledHosts.Upsert(host); @@ -101,5 +102,34 @@ namespace ln.skyscanner.http SkyScanner.Crawler.CrawlSubnets = !SkyScanner.Crawler.CrawlSubnets; } + [Callable] + public Network4[] GetBlockedNetworks() + { + return Crawler.BlockedNetworks.ToArray(); + } + [Callable] + public void AddBlockedNetwork(string _network) + { + Network4 blocked = Network4.Parse(_network); + if (!Crawler.BlockedNetworks.Contains(blocked)) + { + Crawler.BlockedNetworks.Insert(blocked); + } + } + [Callable] + public void RemoveBlockedNetwork(string _network) + { + Network4 blocked = Network4.Parse(_network); + foreach (Network4 blockedNetwork in Crawler.BlockedNetworks) + { + if (blockedNetwork.Equals(blocked)) + { + Crawler.BlockedNetworks.Delete(blockedNetwork); + return; + } + } + } + + } } diff --git a/http/NetworkApi.cs b/http/NetworkApi.cs index af13c91..023ca00 100644 --- a/http/NetworkApi.cs +++ b/http/NetworkApi.cs @@ -12,6 +12,7 @@ using ln.http.resources; using ln.skyscanner.entities; using System.Linq; using ln.types; +using ln.types.net; namespace ln.skyscanner.http { public class NetworkApi : JsonCallResource @@ -39,10 +40,10 @@ namespace ln.skyscanner.http } [Callable] - public Node[] GetHostsInSubnet(string _cidr) + public Node[] GetHostsInSubnet(string _network) { - CIDR cidr = CIDR.Parse(_cidr); - return GlobalNetwork.FindHostsInSubnet(cidr).ToArray(); + Network4 network = Network4.Parse(_network); + return GlobalNetwork.FindHostsInSubnet(network).ToArray(); } [Callable] @@ -52,7 +53,7 @@ namespace ln.skyscanner.http //foreach (Node node in GlobalNetwork.Nodes) //hopMap.AddNode(node, 0); - hopMap.AddNode(GlobalNetwork.FindNodeByIP(CIDR.Parse("10.10.10.2")),0); + hopMap.AddNode(GlobalNetwork.FindNodeByIP(IPv4.Parse("10.10.10.2")),0); return hopMap.HopNodes; } diff --git a/ln.skyscanner.csproj b/ln.skyscanner.csproj index 43b1797..282ff0c 100644 --- a/ln.skyscanner.csproj +++ b/ln.skyscanner.csproj @@ -43,6 +43,7 @@ ..\packages\LiteDB.4.1.4\lib\net40\LiteDB.dll + @@ -75,6 +76,7 @@ + diff --git a/mono_crash.1adb36dd9e.0.json b/mono_crash.1adb36dd9e.0.json new file mode 100644 index 0000000..a57949a --- /dev/null +++ b/mono_crash.1adb36dd9e.0.json @@ -0,0 +1,2539 @@ +{ + "protocol_version" : "0.0.3", + "configuration" : { + "version" : "(5.18.1.0) (tarball)", + "tlc" : "__thread", + "sigsgev" : "altstack", + "notifications" : "epoll", + "architecture" : "amd64", + "disabled_features" : "none", + "smallconfig" : "disabled", + "bigarrays" : "disabled", + "softdebug" : "enabled", + "interpreter" : "enabled", + "llvm_support" : "600", + "suspend" : "preemptive" + }, + "memory" : { + "minor_gc_time" : "1325988", + "major_gc_time" : "59217", + "minor_gc_count" : "112", + "major_gc_count" : "2", + "major_gc_time_concurrent" : "290014" + }, + "threads" : [ + { + "is_managed" : true, + "offset_free_hash" : "0x549be692b", + "offset_rich_hash" : "0x549be6b31", + "crashed" : false, + "native_thread_id" : "0x7f041e54a700", + "thread_info_addr" : "0x7f03f00008c0", + "thread_name" : "RequestBuilder ", + "ctx" : { + "IP" : "0x7f043038217f", + "SP" : "0x7f041e5494e0", + "BP" : "0x55fe80a30a80" + }, + "managed_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "is_managed" : "true", + "guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", + "token" : "0x00000", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x456200", + "timestamp" : "0xb6a39772", + "il_offset" : "0x00000" + } +, + { + "is_managed" : "true", + "guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", + "token" : "0x60032a6", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x456200", + "timestamp" : "0xb6a39772", + "il_offset" : "0x000d9" + } +, + { + "is_managed" : "true", + "guid" : "F74B9F2F-EA8D-47A7-9227-26600E468191", + "token" : "0x6003af6", + "native_offset" : "0x0", + "filename" : "System.dll", + "sizeofimage" : "0x273600", + "timestamp" : "0xfe33b84b", + "il_offset" : "0x00067" + } +, + { + "is_managed" : "true", + "guid" : "F74B9F2F-EA8D-47A7-9227-26600E468191", + "token" : "0x60041ee", + "native_offset" : "0x0", + "filename" : "System.dll", + "sizeofimage" : "0x273600", + "timestamp" : "0xfe33b84b", + "il_offset" : "0x0004d" + } +, + { + "is_managed" : "true", + "guid" : "58F0218F-9887-43A4-8DD7-C84CBE933F4E", + "token" : "0x6001e72", + "native_offset" : "0x0", + "filename" : "Microsoft.Build.dll", + "sizeofimage" : "0x178c00", + "timestamp" : "0xa70665dd", + "il_offset" : "0x0002e" + } +, + { + "is_managed" : "true", + "guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", + "token" : "0x60033b4", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x456200", + "timestamp" : "0xb6a39772", + "il_offset" : "0xffffffff" + } +, + { + "is_managed" : "true", + "guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", + "token" : "0x60033b6", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x456200", + "timestamp" : "0xb6a39772", + "il_offset" : "0xffffffff" + } +, + { + "is_managed" : "true", + "guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", + "token" : "0x00000", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x456200", + "timestamp" : "0xb6a39772", + "il_offset" : "0x0004d" + } + + ], + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] +}, +{ + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x7f041da87700", + "thread_info_addr" : "0x7f03dc0008c0", + "thread_name" : "Thread Pool Wor", + "ctx" : { + "IP" : "0x7f0430384720", + "SP" : "0x7f041da86cc0", + "BP" : "(nil)" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] +}, +{ + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x7f042c5e7700", + "thread_info_addr" : "0x7f04240008c0", + "thread_name" : "Thread Pool Wor", + "ctx" : { + "IP" : "0x7f0430384720", + "SP" : "0x7f042c5e6cc0", + "BP" : "(nil)" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] +}, +{ + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x7f0430e99740", + "thread_info_addr" : "0x55fe80a33dd0", + "thread_name" : "mono", + "ctx" : { + "IP" : "0x7f043038217f", + "SP" : "0x7fff9c557ad0", + "BP" : "0x7fff9c557b30" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] +}, +{ + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x7f041f562700", + "thread_info_addr" : "0x7f03fc0008c0", + "thread_name" : "Thread Pool Wor", + "ctx" : { + "IP" : "0x7f0430384720", + "SP" : "0x7f041f561cc0", + "BP" : "(nil)" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] +}, +{ + "is_managed" : true, + "offset_free_hash" : "0x4b3aef62c", + "offset_rich_hash" : "0x4b3aef6c8", + "crashed" : false, + "native_thread_id" : "0x7f041ed03700", + "thread_info_addr" : "0x7f03f40008c0", + "thread_name" : "In-proc Node (D", + "ctx" : { + "IP" : "0x7f043038217f", + "SP" : "0x7f041ed02160", + "BP" : "0x55fe7fe69320" + }, + "managed_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "is_managed" : "true", + "guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", + "token" : "0x00000", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x456200", + "timestamp" : "0xb6a39772", + "il_offset" : "0x0000b" + } +, + { + "is_managed" : "true", + "guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", + "token" : "0x60034e0", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x456200", + "timestamp" : "0xb6a39772", + "il_offset" : "0xffffffff" + } +, + { + "is_managed" : "true", + "guid" : "58F0218F-9887-43A4-8DD7-C84CBE933F4E", + "token" : "0x6000fbd", + "native_offset" : "0x0", + "filename" : "Microsoft.Build.dll", + "sizeofimage" : "0x178c00", + "timestamp" : "0xa70665dd", + "il_offset" : "0x00047" + } +, + { + "is_managed" : "true", + "guid" : "58F0218F-9887-43A4-8DD7-C84CBE933F4E", + "token" : "0x60011d0", + "native_offset" : "0x0", + "filename" : "Microsoft.Build.dll", + "sizeofimage" : "0x178c00", + "timestamp" : "0xa70665dd", + "il_offset" : "0x00000" + } +, + { + "is_managed" : "true", + "guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", + "token" : "0x60033b4", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x456200", + "timestamp" : "0xb6a39772", + "il_offset" : "0xffffffff" + } +, + { + "is_managed" : "true", + "guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", + "token" : "0x60033b6", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x456200", + "timestamp" : "0xb6a39772", + "il_offset" : "0xffffffff" + } +, + { + "is_managed" : "true", + "guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", + "token" : "0x00000", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x456200", + "timestamp" : "0xb6a39772", + "il_offset" : "0x0004d" + } + + ], +"unmanaged_frames" : [ +{ + "native_address" : "unregistered" + } +, +{ + "native_address" : "unregistered" + } +, +{ + "native_address" : "unregistered" + } +, +{ + "native_address" : "unregistered" + } +, +{ + "native_address" : "unregistered" + } +, +{ + "native_address" : "unregistered" + } +, +{ + "native_address" : "unregistered" + } +, +{ + "native_address" : "unregistered" + } +, +{ + "native_address" : "unregistered" + } +, +{ + "native_address" : "unregistered" + } +, +{ + "native_address" : "unregistered" + } + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0x1adb36dd9e", +"offset_rich_hash" : "0x1adb36efb7", +"crashed" : true, +"native_thread_id" : "0x7f041c8d0700", +"thread_info_addr" : "0x7f03d40008c0", +"thread_name" : "RequestBuilder ", +"ctx" : { + "IP" : "0x55fe7f9a8dd0", + "SP" : "0x7f041c8cd5e0", + "BP" : "0x17568d6e" +}, +"managed_frames" : [ +{ + "native_address" : "unregistered" + } +, +{ + "is_managed" : "true", + "guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", + "token" : "0x00000", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x456200", + "timestamp" : "0xb6a39772", + "il_offset" : "0x0000b" + } +, +{ + "is_managed" : "true", + "guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", + "token" : "0x6004fd4", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x456200", + "timestamp" : "0xb6a39772", + "il_offset" : "0x00000" + } +, +{ + "is_managed" : "true", + "guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", + "token" : "0x6005138", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x456200", + "timestamp" : "0xb6a39772", + "il_offset" : "0xffffffff" + } +, +{ + "is_managed" : "true", + "guid" : "AB0ADFB7-DC4D-43DB-BBF0-DAB1C31A2209", + "token" : "0x600000c", + "native_offset" : "0x0", + "filename" : "Microsoft.NET.Build.Extensions.Tasks.dll", + "sizeofimage" : "0xf800", + "timestamp" : "0xb18e66fa", + "il_offset" : "0x00020" + } +, +{ + "is_managed" : "true", + "guid" : "AB0ADFB7-DC4D-43DB-BBF0-DAB1C31A2209", + "token" : "0x600000a", + "native_offset" : "0x0", + "filename" : "Microsoft.NET.Build.Extensions.Tasks.dll", + "sizeofimage" : "0xf800", + "timestamp" : "0xb18e66fa", + "il_offset" : "0x0001f" + } +, +{ + "is_managed" : "true", + "guid" : "AB0ADFB7-DC4D-43DB-BBF0-DAB1C31A2209", + "token" : "0x6000009", + "native_offset" : "0x0", + "filename" : "Microsoft.NET.Build.Extensions.Tasks.dll", + "sizeofimage" : "0xf800", + "timestamp" : "0xb18e66fa", + "il_offset" : "0x00000" + } +, +{ + "is_managed" : "true", + "guid" : "AB0ADFB7-DC4D-43DB-BBF0-DAB1C31A2209", + "token" : "0x600003c", + "native_offset" : "0x0", + "filename" : "Microsoft.NET.Build.Extensions.Tasks.dll", + "sizeofimage" : "0xf800", + "timestamp" : "0xb18e66fa", + "il_offset" : "0x00000" + } +, +{ + "is_managed" : "true", + "guid" : "58F0218F-9887-43A4-8DD7-C84CBE933F4E", + "token" : "0x600121a", + "native_offset" : "0x0", + "filename" : "Microsoft.Build.dll", + "sizeofimage" : "0x178c00", + "timestamp" : "0xa70665dd", + "il_offset" : "0x00029" + } +, +{ + "is_managed" : "true", + "guid" : "58F0218F-9887-43A4-8DD7-C84CBE933F4E", + "token" : "0x6001e9d", + "native_offset" : "0x0", + "filename" : "Microsoft.Build.dll", + "sizeofimage" : "0x178c00", + "timestamp" : "0xa70665dd", + "il_offset" : "0x001f6" + } +, +{ + "is_managed" : "true", + "guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", + "token" : "0x6004d36", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x456200", + "timestamp" : "0xb6a39772", + "il_offset" : "0x0002c" + } +, +{ + "is_managed" : "true", + "guid" : "58F0218F-9887-43A4-8DD7-C84CBE933F4E", + "token" : "0x60010c5", + "native_offset" : "0x0", + "filename" : "Microsoft.Build.dll", + "sizeofimage" : "0x178c00", + "timestamp" : "0xa70665dd", + "il_offset" : "0x0004d" + } +, +{ + "is_managed" : "true", + "guid" : "58F0218F-9887-43A4-8DD7-C84CBE933F4E", + "token" : "0x6001e9b", + "native_offset" : "0x0", + "filename" : "Microsoft.Build.dll", + "sizeofimage" : "0x178c00", + "timestamp" : "0xa70665dd", + "il_offset" : "0x00065" + } +, +{ + "is_managed" : "true", + "guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", + "token" : "0x6004d36", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x456200", + "timestamp" : "0xb6a39772", + "il_offset" : "0x0002c" + } +, +{ + "is_managed" : "true", + "guid" : "58F0218F-9887-43A4-8DD7-C84CBE933F4E", + "token" : "0x60010c3", + "native_offset" : "0x0", + "filename" : "Microsoft.Build.dll", + "sizeofimage" : "0x178c00", + "timestamp" : "0xa70665dd", + "il_offset" : "0x0004d" + } +, +{ + "is_managed" : "true", + "guid" : "58F0218F-9887-43A4-8DD7-C84CBE933F4E", + "token" : "0x6001e97", + "native_offset" : "0x0", + "filename" : "Microsoft.Build.dll", + "sizeofimage" : "0x178c00", + "timestamp" : "0xa70665dd", + "il_offset" : "0x0019d" + } +, +{ + "is_managed" : "true", + "guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", + "token" : "0x6004d36", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x456200", + "timestamp" : "0xb6a39772", + "il_offset" : "0x0002c" + } +, +{ + "is_managed" : "true", + "guid" : "58F0218F-9887-43A4-8DD7-C84CBE933F4E", + "token" : "0x60010be", + "native_offset" : "0x0", + "filename" : "Microsoft.Build.dll", + "sizeofimage" : "0x178c00", + "timestamp" : "0xa70665dd", + "il_offset" : "0x00044" + } +, +{ + "is_managed" : "true", + "guid" : "58F0218F-9887-43A4-8DD7-C84CBE933F4E", + "token" : "0x6001e95", + "native_offset" : "0x0", + "filename" : "Microsoft.Build.dll", + "sizeofimage" : "0x178c00", + "timestamp" : "0xa70665dd", + "il_offset" : "0x0015e" + } +, +{ + "is_managed" : "true", + "guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", + "token" : "0x6004d36", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x456200", + "timestamp" : "0xb6a39772", + "il_offset" : "0x0002c" + } +, +{ + "is_managed" : "true", + "guid" : "58F0218F-9887-43A4-8DD7-C84CBE933F4E", + "token" : "0x60010bd", + "native_offset" : "0x0", + "filename" : "Microsoft.Build.dll", + "sizeofimage" : "0x178c00", + "timestamp" : "0xa70665dd", + "il_offset" : "0x00033" + } +, +{ + "is_managed" : "true", + "guid" : "58F0218F-9887-43A4-8DD7-C84CBE933F4E", + "token" : "0x6001e93", + "native_offset" : "0x0", + "filename" : "Microsoft.Build.dll", + "sizeofimage" : "0x178c00", + "timestamp" : "0xa70665dd", + "il_offset" : "0x0018b" + } +, +{ + "is_managed" : "true", + "guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", + "token" : "0x6004d36", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x456200", + "timestamp" : "0xb6a39772", + "il_offset" : "0x0002c" + } +, +{ + "is_managed" : "true", + "guid" : "58F0218F-9887-43A4-8DD7-C84CBE933F4E", + "token" : "0x60010b8", + "native_offset" : "0x0", + "filename" : "Microsoft.Build.dll", + "sizeofimage" : "0x178c00", + "timestamp" : "0xa70665dd", + "il_offset" : "0x00068" + } +, +{ + "is_managed" : "true", + "guid" : "58F0218F-9887-43A4-8DD7-C84CBE933F4E", + "token" : "0x6001e91", + "native_offset" : "0x0", + "filename" : "Microsoft.Build.dll", + "sizeofimage" : "0x178c00", + "timestamp" : "0xa70665dd", + "il_offset" : "0x0005f" + } +, +{ + "is_managed" : "true", + "guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", + "token" : "0x6004d36", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x456200", + "timestamp" : "0xb6a39772", + "il_offset" : "0x0002c" + } +, +{ + "is_managed" : "true", + "guid" : "58F0218F-9887-43A4-8DD7-C84CBE933F4E", + "token" : "0x6001093", + "native_offset" : "0x0", + "filename" : "Microsoft.Build.dll", + "sizeofimage" : "0x178c00", + "timestamp" : "0xa70665dd", + "il_offset" : "0x0004d" + } +, +{ + "is_managed" : "true", + "guid" : "58F0218F-9887-43A4-8DD7-C84CBE933F4E", + "token" : "0x6001e8f", + "native_offset" : "0x0", + "filename" : "Microsoft.Build.dll", + "sizeofimage" : "0x178c00", + "timestamp" : "0xa70665dd", + "il_offset" : "0x002b7" + } +, +{ + "is_managed" : "true", + "guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", + "token" : "0x6004d2b", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x456200", + "timestamp" : "0xb6a39772", + "il_offset" : "0x0002c" + } +, +{ + "is_managed" : "true", + "guid" : "58F0218F-9887-43A4-8DD7-C84CBE933F4E", + "token" : "0x600108c", + "native_offset" : "0x0", + "filename" : "Microsoft.Build.dll", + "sizeofimage" : "0x178c00", + "timestamp" : "0xa70665dd", + "il_offset" : "0x00044" + } +, +{ + "is_managed" : "true", + "guid" : "58F0218F-9887-43A4-8DD7-C84CBE933F4E", + "token" : "0x6001e89", + "native_offset" : "0x0", + "filename" : "Microsoft.Build.dll", + "sizeofimage" : "0x178c00", + "timestamp" : "0xa70665dd", + "il_offset" : "0x00412" + } +, +{ + "is_managed" : "true", + "guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", + "token" : "0x6004d4f", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x456200", + "timestamp" : "0xb6a39772", + "il_offset" : "0xffffffff" + } +, +{ + "is_managed" : "true", + "guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", + "token" : "0x6004d4e", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x456200", + "timestamp" : "0xb6a39772", + "il_offset" : "0xffffffff" + } +, +{ + "is_managed" : "true", + "guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", + "token" : "0x60038e3", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x456200", + "timestamp" : "0xb6a39772", + "il_offset" : "0xffffffff" + } +, +{ + "is_managed" : "true", + "guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", + "token" : "0x6003829", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x456200", + "timestamp" : "0xb6a39772", + "il_offset" : "0xffffffff" + } +, +{ + "is_managed" : "true", + "guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", + "token" : "0x6003973", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x456200", + "timestamp" : "0xb6a39772", + "il_offset" : "0xffffffff" + } +, +{ + "is_managed" : "true", + "guid" : "58F0218F-9887-43A4-8DD7-C84CBE933F4E", + "token" : "0x6001e72", + "native_offset" : "0x0", + "filename" : "Microsoft.Build.dll", + "sizeofimage" : "0x178c00", + "timestamp" : "0xa70665dd", + "il_offset" : "0x0001a" + } +, +{ + "is_managed" : "true", + "guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", + "token" : "0x60033b4", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x456200", + "timestamp" : "0xb6a39772", + "il_offset" : "0xffffffff" + } +, +{ + "is_managed" : "true", + "guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", + "token" : "0x60033b6", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x456200", + "timestamp" : "0xb6a39772", + "il_offset" : "0xffffffff" + } +, +{ + "is_managed" : "true", + "guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", + "token" : "0x00000", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x456200", + "timestamp" : "0xb6a39772", + "il_offset" : "0x0004d" + } + +], +"unmanaged_frames" : [ +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f041e26f700", +"thread_info_addr" : "0x7f03e40008c0", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f0430384720", +"SP" : "0x7f041e26ecc0", +"BP" : "(nil)" +}, +"unmanaged_frames" : [ +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f041ffff700", +"thread_info_addr" : "0x7f04140008c0", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f0430384720", +"SP" : "0x7f041fffecc0", +"BP" : "(nil)" +}, +"unmanaged_frames" : [ +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f041fbfd700", +"thread_info_addr" : "0x7f04100008c0", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f0430384720", +"SP" : "0x7f041fbfccc0", +"BP" : "(nil)" +}, +"unmanaged_frames" : [ +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0x6fcdf94fa", +"offset_rich_hash" : "0x6fcdf975a", +"crashed" : false, +"native_thread_id" : "0x7f041f767700", +"thread_info_addr" : "0x7f04080008c0", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f043038217f", +"SP" : "0x7f041f765bf0", +"BP" : "0x55fe80a2b6f0" +}, +"managed_frames" : [ +{ +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0x0000b" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x60034d0", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0xffffffff" +} +, +{ +"is_managed" : "true", +"guid" : "58F0218F-9887-43A4-8DD7-C84CBE933F4E", +"token" : "0x6000a3d", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x178c00", +"timestamp" : "0xa70665dd", +"il_offset" : "0x00053" +} +, +{ +"is_managed" : "true", +"guid" : "58F0218F-9887-43A4-8DD7-C84CBE933F4E", +"token" : "0x600099c", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x178c00", +"timestamp" : "0xa70665dd", +"il_offset" : "0x00008" +} +, +{ +"is_managed" : "true", +"guid" : "9D8E5B5A-2F29-465A-9F4A-FD51F8C7B0AE", +"token" : "0x60000a0", +"native_offset" : "0x0", +"filename" : "MonoDevelop.MSBuildBuilder.exe", +"sizeofimage" : "0xf600", +"timestamp" : "0xfd04a10b", +"il_offset" : "0x00065" +} +, +{ +"is_managed" : "true", +"guid" : "9D8E5B5A-2F29-465A-9F4A-FD51F8C7B0AE", +"token" : "0x6000178", +"native_offset" : "0x0", +"filename" : "MonoDevelop.MSBuildBuilder.exe", +"sizeofimage" : "0xf600", +"timestamp" : "0xfd04a10b", +"il_offset" : "0x0012f" +} +, +{ +"is_managed" : "true", +"guid" : "9D8E5B5A-2F29-465A-9F4A-FD51F8C7B0AE", +"token" : "0x6000085", +"native_offset" : "0x0", +"filename" : "MonoDevelop.MSBuildBuilder.exe", +"sizeofimage" : "0xf600", +"timestamp" : "0xfd04a10b", +"il_offset" : "0x0001c" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x60033b4", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0xffffffff" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x60033b6", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0xffffffff" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0x0004d" +} + +], +"unmanaged_frames" : [ +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f041e74b700", +"thread_info_addr" : "0x7f03ec0008c0", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f0430384720", +"SP" : "0x7f041e74acc0", +"BP" : "(nil)" +}, +"unmanaged_frames" : [ +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f042d3c9700", +"thread_info_addr" : "0x7f04280008c0", +"thread_name" : "Finalizer", +"ctx" : { +"IP" : "0x7f0430384556", +"SP" : "0x7f042d3c8d00", +"BP" : "(nil)" +}, +"unmanaged_frames" : [ +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0x549be692b", +"offset_rich_hash" : "0x549be6b31", +"crashed" : false, +"native_thread_id" : "0x7f041ecc2700", +"thread_info_addr" : "0x7f03f80008c0", +"thread_name" : "RequestBuilder ", +"ctx" : { +"IP" : "0x7f043038217f", +"SP" : "0x7f041ecc14e0", +"BP" : "0x55fe80a30bd0" +}, +"managed_frames" : [ +{ +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x60032a6", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0x000d9" +} +, +{ +"is_managed" : "true", +"guid" : "F74B9F2F-EA8D-47A7-9227-26600E468191", +"token" : "0x6003af6", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x273600", +"timestamp" : "0xfe33b84b", +"il_offset" : "0x00067" +} +, +{ +"is_managed" : "true", +"guid" : "F74B9F2F-EA8D-47A7-9227-26600E468191", +"token" : "0x60041ee", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x273600", +"timestamp" : "0xfe33b84b", +"il_offset" : "0x0004d" +} +, +{ +"is_managed" : "true", +"guid" : "58F0218F-9887-43A4-8DD7-C84CBE933F4E", +"token" : "0x6001e72", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x178c00", +"timestamp" : "0xa70665dd", +"il_offset" : "0x0002e" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x60033b4", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0xffffffff" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x60033b6", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0xffffffff" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0x0004d" +} + +], +"unmanaged_frames" : [ +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0x689d0ba21", +"offset_rich_hash" : "0x689d0bb59", +"crashed" : false, +"native_thread_id" : "0x7f042c7e8700", +"thread_info_addr" : "0x7f04200008c0", +"thread_name" : "mono", +"ctx" : { +"IP" : "0x7f0430385593", +"SP" : "0x7f042c7e75b0", +"BP" : "(nil)" +}, +"managed_frames" : [ +{ +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "F74B9F2F-EA8D-47A7-9227-26600E468191", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x273600", +"timestamp" : "0xfe33b84b", +"il_offset" : "0x0000b" +} +, +{ +"is_managed" : "true", +"guid" : "F74B9F2F-EA8D-47A7-9227-26600E468191", +"token" : "0x60020fa", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x273600", +"timestamp" : "0xfe33b84b", +"il_offset" : "0x0000c" +} +, +{ +"is_managed" : "true", +"guid" : "F74B9F2F-EA8D-47A7-9227-26600E468191", +"token" : "0x60020f1", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x273600", +"timestamp" : "0xfe33b84b", +"il_offset" : "0x0002e" +} +, +{ +"is_managed" : "true", +"guid" : "F74B9F2F-EA8D-47A7-9227-26600E468191", +"token" : "0x600208c", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x273600", +"timestamp" : "0xfe33b84b", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "F74B9F2F-EA8D-47A7-9227-26600E468191", +"token" : "0x6002049", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x273600", +"timestamp" : "0xfe33b84b", +"il_offset" : "0x0009b" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x6002dd4", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0xffffffff" +} +, +{ +"is_managed" : "true", +"guid" : "9D8E5B5A-2F29-465A-9F4A-FD51F8C7B0AE", +"token" : "0x600005d", +"native_offset" : "0x0", +"filename" : "MonoDevelop.MSBuildBuilder.exe", +"sizeofimage" : "0xf600", +"timestamp" : "0xfd04a10b", +"il_offset" : "0x0000e" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x60033b4", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0xffffffff" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x60033b6", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0xffffffff" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0x0004d" +} + +], +"unmanaged_frames" : [ +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0xad9e3d583", +"offset_rich_hash" : "0xad9e3d810", +"crashed" : false, +"native_thread_id" : "0x7f041dd0b700", +"thread_info_addr" : "0x7f03e80008c0", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f043038217f", +"SP" : "0x7f041dd096f0", +"BP" : "0x55fe80a2b680" +}, +"managed_frames" : [ +{ +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0x0000b" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x60034d0", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0xffffffff" +} +, +{ +"is_managed" : "true", +"guid" : "9D8E5B5A-2F29-465A-9F4A-FD51F8C7B0AE", +"token" : "0x6000084", +"native_offset" : "0x0", +"filename" : "MonoDevelop.MSBuildBuilder.exe", +"sizeofimage" : "0xf600", +"timestamp" : "0xfd04a10b", +"il_offset" : "0x000ef" +} +, +{ +"is_managed" : "true", +"guid" : "9D8E5B5A-2F29-465A-9F4A-FD51F8C7B0AE", +"token" : "0x600009d", +"native_offset" : "0x0", +"filename" : "MonoDevelop.MSBuildBuilder.exe", +"sizeofimage" : "0xf600", +"timestamp" : "0xfd04a10b", +"il_offset" : "0x0006e" +} +, +{ +"is_managed" : "true", +"guid" : "9D8E5B5A-2F29-465A-9F4A-FD51F8C7B0AE", +"token" : "0x600007b", +"native_offset" : "0x0", +"filename" : "MonoDevelop.MSBuildBuilder.exe", +"sizeofimage" : "0xf600", +"timestamp" : "0xfd04a10b", +"il_offset" : "0x0006d" +} +, +{ +"is_managed" : "true", +"guid" : "9D8E5B5A-2F29-465A-9F4A-FD51F8C7B0AE", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "MonoDevelop.MSBuildBuilder.exe", +"sizeofimage" : "0xf600", +"timestamp" : "0xfd04a10b", +"il_offset" : "0x00050" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0x0000c" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x6004ecc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0xffffffff" +} +, +{ +"is_managed" : "true", +"guid" : "9D8E5B5A-2F29-465A-9F4A-FD51F8C7B0AE", +"token" : "0x6000039", +"native_offset" : "0x0", +"filename" : "MonoDevelop.MSBuildBuilder.exe", +"sizeofimage" : "0xf600", +"timestamp" : "0xfd04a10b", +"il_offset" : "0x00019" +} +, +{ +"is_managed" : "true", +"guid" : "9D8E5B5A-2F29-465A-9F4A-FD51F8C7B0AE", +"token" : "0x6000166", +"native_offset" : "0x0", +"filename" : "MonoDevelop.MSBuildBuilder.exe", +"sizeofimage" : "0xf600", +"timestamp" : "0xfd04a10b", +"il_offset" : "0x00029" +} +, +{ +"is_managed" : "true", +"guid" : "9D8E5B5A-2F29-465A-9F4A-FD51F8C7B0AE", +"token" : "0x6000181", +"native_offset" : "0x0", +"filename" : "MonoDevelop.MSBuildBuilder.exe", +"sizeofimage" : "0xf600", +"timestamp" : "0xfd04a10b", +"il_offset" : "0x00001" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x600347e", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0xffffffff" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x600347c", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0xffffffff" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x6003478", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0xffffffff" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0x0001e" +} + +], +"unmanaged_frames" : [ +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f03dbdfe700", +"thread_info_addr" : "0x7f03c80008c0", +"thread_name" : "mono", +"ctx" : { +"IP" : "0x7f0430382528", +"SP" : "0x7f03dbdfdca0", +"BP" : "0x55fe7fe78fe0" +}, +"unmanaged_frames" : [ +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f041cffb700", +"thread_info_addr" : "0x7f03e00008c0", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f0430384720", +"SP" : "0x7f041cffacc0", +"BP" : "(nil)" +}, +"unmanaged_frames" : [ +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0x438d78b5a", +"offset_rich_hash" : "0x438d78bb3", +"crashed" : false, +"native_thread_id" : "0x7f041fdfe700", +"thread_info_addr" : "0x7f040c0008c0", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f0430382528", +"SP" : "0x7f041fdfd860", +"BP" : "0x55fe7fe78fe0" +}, +"managed_frames" : [ +{ +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0x0000b" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x60033da", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0xffffffff" +} +, +{ +"is_managed" : "true", +"guid" : "9D8E5B5A-2F29-465A-9F4A-FD51F8C7B0AE", +"token" : "0x6000176", +"native_offset" : "0x0", +"filename" : "MonoDevelop.MSBuildBuilder.exe", +"sizeofimage" : "0xf600", +"timestamp" : "0xfd04a10b", +"il_offset" : "0x00004" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x60033b4", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0xffffffff" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x60033b6", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0xffffffff" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0x0004d" +} + +], +"unmanaged_frames" : [ +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0x42955ac23", +"offset_rich_hash" : "0x42955ac77", +"crashed" : false, +"native_thread_id" : "0x7f041f9b2700", +"thread_info_addr" : "0x7f04040008c0", +"thread_name" : "Timer-Scheduler", +"ctx" : { +"IP" : "0x7f0430382528", +"SP" : "0x7f041f9b11c0", +"BP" : "0x55fe80a2a7a0" +}, +"managed_frames" : [ +{ +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0x0000b" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x60034d0", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0xffffffff" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x600358b", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0xffffffff" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x60033b4", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0xffffffff" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x60033b6", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0xffffffff" +} +, +{ +"is_managed" : "true", +"guid" : "B0FBCE3A-DED2-4CD6-9A27-94DF353EBD0A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x456200", +"timestamp" : "0xb6a39772", +"il_offset" : "0x0004d" +} + +], +"unmanaged_frames" : [ +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} +, +{ +"native_address" : "unregistered" +} + +] +} +] +} \ No newline at end of file diff --git a/templates/static/crawlerhosts.html b/templates/static/crawlerhosts.html index 7b22005..f28b82a 100644 --- a/templates/static/crawlerhosts.html +++ b/templates/static/crawlerhosts.html @@ -151,7 +151,7 @@ $("#chHints").DataTable({ columns: [ { title: "Schlüssel", data: "Key" }, - { title: "Wert", data: "Value" } + { title: "Wert", data: "Value", render: function(d,t,r){ return $("
").text(d).html(); } } ], }); diff --git a/templates/static/network/index.html b/templates/static/network/index.html index 98efb31..85a175c 100644 --- a/templates/static/network/index.html +++ b/templates/static/network/index.html @@ -65,8 +65,8 @@ $("#dInterfaces").empty(); $.each( node.Interfaces, function(){ var intf = this; - $.each( intf.IPs, function(){ - $("#dInterfaces").append( $( "" ) ); + $.each( intf.ConfiguredIPs, function(){ + $("#dInterfaces").append( $( "" ) ); }); });