// /** // * File: NetworkApi.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 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 { public GlobalNetwork GlobalNetwork => SkyScanner.Instance.Entities.GlobalNetwork; public NetworkApi(SkyScannerHttpApi container) :base(container,"network") { } [Callable] public Node[] GetNeighbors(string pid) { Guid nodeID = Guid.Parse(pid); return GlobalNetwork.FindNeighbors(GlobalNetwork.GetNode(nodeID)).ToArray(); } [Callable] public Node[] GetHostsInSubnet(string _network) { Network4 network = Network4.Parse(_network); return GlobalNetwork.FindHostsInSubnet(network).ToArray(); } [Callable] public HopMap.HopNode[] GetHopTable() { HopMap hopMap = new HopMap(GlobalNetwork.FindNodeByIP(IPv4.Parse("10.10.10.2"))); return hopMap.HopNodes; } [Callable] public HopMap.HopNode[] GetHopTable(string pid) { Guid persistenceID = Guid.Parse(pid); HopMap hopMap = new HopMap(GlobalNetwork.GetNode(persistenceID)); return hopMap.HopNodes; } } }