69 lines
1.6 KiB
C#
69 lines
1.6 KiB
C#
using System;
|
|
using ln.http.resources;
|
|
using ln.skyscanner.entities;
|
|
using System.Linq;
|
|
using ln.skyscanner.crawl;
|
|
using ln.types;
|
|
using System.Net;
|
|
using ln.types.threads;
|
|
|
|
namespace ln.skyscanner.http
|
|
{
|
|
public class CrawlerApi : JsonCallResource
|
|
{
|
|
public SkyScanner SkyScanner { get; }
|
|
|
|
public CrawlerApi(Resource container,SkyScanner skyScanner)
|
|
:base(container,"crawler")
|
|
{
|
|
SkyScanner = skyScanner;
|
|
}
|
|
|
|
[Callable]
|
|
public CrawledSubnet[] GetSubnets()
|
|
{
|
|
return SkyScanner.Crawler?.CrawlPool.Subnets.ToArray();
|
|
}
|
|
|
|
[Callable]
|
|
public CrawledHost[] GetHosts()
|
|
{
|
|
return SkyScanner.Crawler?.CrawlPool?.Hosts;
|
|
}
|
|
|
|
[Callable]
|
|
public CrawledHost GetHostByIP(string _ip)
|
|
{
|
|
return SkyScanner.Crawler.CrawlPool.HostForIP(CIDR.Parse(_ip));
|
|
}
|
|
|
|
[Callable]
|
|
public CrawledHost AddHost(string _ip, string name)
|
|
{
|
|
CIDR ip = CIDR.Parse(_ip);
|
|
CrawledHost host = SkyScanner.Crawler.CrawlPool.HostForIP(ip);
|
|
host.Name = name;
|
|
return host;
|
|
}
|
|
|
|
[Callable]
|
|
public void Crawl(string _ip)
|
|
{
|
|
SkyScanner.Crawler.Crawl(CIDR.Parse(_ip));
|
|
}
|
|
|
|
[Callable]
|
|
public PoolJob[] GetCurrentPoolJobs()
|
|
{
|
|
return SkyScanner.Crawler.CurrentJobs;
|
|
}
|
|
|
|
[Callable]
|
|
public PoolJob[] GetQueuedJobs()
|
|
{
|
|
return SkyScanner.Crawler.QueuedJobs;
|
|
}
|
|
|
|
}
|
|
}
|