mirror of
https://github.com/gnh1201/welsonjs.git
synced 2025-05-09 05:06:04 +00:00
Some updates
This commit is contained in:
parent
d8fa8779de
commit
dd85e98c9a
|
@ -3,9 +3,23 @@ using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace WelsonJS.Launcher
|
namespace WelsonJS.Launcher
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Defines a contract for resource tools that can handle specific HTTP requests.
|
||||||
|
/// </summary>
|
||||||
public interface IResourceTool
|
public interface IResourceTool
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Determines whether this tool can handle the specified path.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="path">The request path to check.</param>
|
||||||
|
/// <returns>True if this tool can handle the request; otherwise, false.</returns>
|
||||||
bool CanHandle(string path);
|
bool CanHandle(string path);
|
||||||
|
/// <summary>
|
||||||
|
/// Asynchronously processes the HTTP request for the specified path.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="context">The HTTP listener context containing request and response objects.</param>
|
||||||
|
/// <param name="path">The request path to handle.</param>
|
||||||
|
/// <returns>A task representing the asynchronous operation.</returns>
|
||||||
Task HandleAsync(HttpListenerContext context, string path);
|
Task HandleAsync(HttpListenerContext context, string path);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,6 +60,24 @@ namespace WelsonJS.Launcher.Properties {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 과(와) 유사한 지역화된 문자열을 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static string AzureAiServiceApiKey {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("AzureAiServiceApiKey", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// https://ai-catswords656881030318.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview과(와) 유사한 지역화된 문자열을 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static string AzureAiServiceUrl {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("AzureAiServiceUrl", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// https://copilot.microsoft.com/과(와) 유사한 지역화된 문자열을 찾습니다.
|
/// https://copilot.microsoft.com/과(와) 유사한 지역화된 문자열을 찾습니다.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -78,6 +96,15 @@ namespace WelsonJS.Launcher.Properties {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 1.1.1.1과(와) 유사한 지역화된 문자열을 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static string DnsServerAddress {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("DnsServerAddress", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// (아이콘)과(와) 유사한 System.Drawing.Icon 형식의 지역화된 리소스를 찾습니다.
|
/// (아이콘)과(와) 유사한 System.Drawing.Icon 형식의 지역화된 리소스를 찾습니다.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -195,5 +222,41 @@ namespace WelsonJS.Launcher.Properties {
|
||||||
return ResourceManager.GetString("ResourceServerPrefix", resourceCulture);
|
return ResourceManager.GetString("ResourceServerPrefix", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 141.101.82.1과(와) 유사한 지역화된 문자열을 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static string WhoisClientAddress {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("WhoisClientAddress", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// https://xn--c79as89aj0e29b77z.xn--3e0b707e/kor/whois/whois.jsp과(와) 유사한 지역화된 문자열을 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static string WhoisReferrerUrl {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("WhoisReferrerUrl", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// https://xn--c79as89aj0e29b77z.xn--3e0b707e/kor/whois.jsc과(와) 유사한 지역화된 문자열을 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static string WhoisServerUrl {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("WhoisServerUrl", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.3124.77과(와) 유사한 지역화된 문자열을 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static string WhoisUserAgent {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("WhoisUserAgent", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -160,4 +160,25 @@
|
||||||
<data name="DevToolsPrefix" xml:space="preserve">
|
<data name="DevToolsPrefix" xml:space="preserve">
|
||||||
<value>http://localhost:9222/</value>
|
<value>http://localhost:9222/</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="AzureAiServiceApiKey" xml:space="preserve">
|
||||||
|
<value />
|
||||||
|
</data>
|
||||||
|
<data name="AzureAiServiceUrl" xml:space="preserve">
|
||||||
|
<value>https://ai-catswords656881030318.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview</value>
|
||||||
|
</data>
|
||||||
|
<data name="DnsServerAddress" xml:space="preserve">
|
||||||
|
<value>1.1.1.1</value>
|
||||||
|
</data>
|
||||||
|
<data name="WhoisClientAddress" xml:space="preserve">
|
||||||
|
<value>141.101.82.1</value>
|
||||||
|
</data>
|
||||||
|
<data name="WhoisReferrerUrl" xml:space="preserve">
|
||||||
|
<value>https://xn--c79as89aj0e29b77z.xn--3e0b707e/kor/whois/whois.jsp</value>
|
||||||
|
</data>
|
||||||
|
<data name="WhoisServerUrl" xml:space="preserve">
|
||||||
|
<value>https://xn--c79as89aj0e29b77z.xn--3e0b707e/kor/whois.jsc</value>
|
||||||
|
</data>
|
||||||
|
<data name="WhoisUserAgent" xml:space="preserve">
|
||||||
|
<value>Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.3124.77</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -34,6 +34,7 @@ namespace WelsonJS.Launcher
|
||||||
_resourceTools.Add(new ResourceTools.Completion(this));
|
_resourceTools.Add(new ResourceTools.Completion(this));
|
||||||
_resourceTools.Add(new ResourceTools.Config(this));
|
_resourceTools.Add(new ResourceTools.Config(this));
|
||||||
_resourceTools.Add(new ResourceTools.DevTools(this));
|
_resourceTools.Add(new ResourceTools.DevTools(this));
|
||||||
|
_resourceTools.Add(new ResourceTools.DnsQuery(this));
|
||||||
_resourceTools.Add(new ResourceTools.Tfa(this));
|
_resourceTools.Add(new ResourceTools.Tfa(this));
|
||||||
_resourceTools.Add(new ResourceTools.Whois(this));
|
_resourceTools.Add(new ResourceTools.Whois(this));
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,8 +9,10 @@ namespace WelsonJS.Launcher.ResourceTools
|
||||||
{
|
{
|
||||||
private ResourceServer Server;
|
private ResourceServer Server;
|
||||||
private const string Prefix = "devtools/";
|
private const string Prefix = "devtools/";
|
||||||
|
private const double Timeout = 5000;
|
||||||
|
|
||||||
public DevTools(ResourceServer server) {
|
public DevTools(ResourceServer server)
|
||||||
|
{
|
||||||
Server = server;
|
Server = server;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,6 +29,8 @@ namespace WelsonJS.Launcher.ResourceTools
|
||||||
{
|
{
|
||||||
using (HttpClient client = new HttpClient())
|
using (HttpClient client = new HttpClient())
|
||||||
{
|
{
|
||||||
|
client.Timeout = TimeSpan.FromMilliseconds(Timeout);
|
||||||
|
|
||||||
string url = Program.GetAppConfig("DevToolsPrefix") + endpoint;
|
string url = Program.GetAppConfig("DevToolsPrefix") + endpoint;
|
||||||
string data = await client.GetStringAsync(url);
|
string data = await client.GetStringAsync(url);
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace WelsonJS.Launcher.ResourceTools
|
namespace WelsonJS.Launcher.ResourceTools
|
||||||
{
|
{
|
||||||
public class DnsQuery
|
public class DnsQuery : IResourceTool
|
||||||
{
|
{
|
||||||
private ResourceServer Server;
|
private ResourceServer Server;
|
||||||
private const string Prefix = "dns-query/";
|
private const string Prefix = "dns-query/";
|
||||||
|
@ -17,10 +17,10 @@ namespace WelsonJS.Launcher.ResourceTools
|
||||||
private const int Timeout = 5000;
|
private const int Timeout = 5000;
|
||||||
private static readonly Random _random = new Random();
|
private static readonly Random _random = new Random();
|
||||||
|
|
||||||
public DnsQuery(ResourceServer server, string dnsServer = "8.8.8.8")
|
public DnsQuery(ResourceServer server)
|
||||||
{
|
{
|
||||||
Server = server;
|
Server = server;
|
||||||
DnsServer = dnsServer;
|
DnsServer = Program.GetAppConfig("DnsServerAddress");
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool CanHandle(string path)
|
public bool CanHandle(string path)
|
||||||
|
@ -115,17 +115,18 @@ namespace WelsonJS.Launcher.ResourceTools
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
UdpClient udpClient = new UdpClient(DnsServer, DnsPort);
|
using (UdpClient udpClient = new UdpClient(DnsServer, DnsPort))
|
||||||
udpClient.Client.ReceiveTimeout = Timeout;
|
{
|
||||||
|
udpClient.Client.ReceiveTimeout = Timeout;
|
||||||
|
|
||||||
byte[] request = CreateDnsQuery(domain, type);
|
byte[] request = CreateDnsQuery(domain, type);
|
||||||
udpClient.Send(request, request.Length);
|
udpClient.Send(request, request.Length);
|
||||||
|
|
||||||
IPEndPoint remoteEP = new IPEndPoint(IPAddress.Any, DnsPort);
|
IPEndPoint remoteEP = new IPEndPoint(IPAddress.Any, DnsPort);
|
||||||
byte[] response = udpClient.Receive(ref remoteEP);
|
byte[] response = udpClient.Receive(ref remoteEP);
|
||||||
|
|
||||||
records.AddRange(ParseDnsResponse(response, type));
|
records.AddRange(ParseDnsResponse(response, type));
|
||||||
udpClient.Close();
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|
|
@ -10,6 +10,7 @@ namespace WelsonJS.Launcher.ResourceTools
|
||||||
{
|
{
|
||||||
private ResourceServer Server;
|
private ResourceServer Server;
|
||||||
private const string Prefix = "whois/";
|
private const string Prefix = "whois/";
|
||||||
|
private const int Timeout = 5000;
|
||||||
|
|
||||||
public Whois(ResourceServer server)
|
public Whois(ResourceServer server)
|
||||||
{
|
{
|
||||||
|
@ -31,20 +32,20 @@ namespace WelsonJS.Launcher.ResourceTools
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
string whoisServerUrl = "https://xn--c79as89aj0e29b77z.xn--3e0b707e";
|
|
||||||
|
|
||||||
using (var client = new HttpClient())
|
using (var client = new HttpClient())
|
||||||
{
|
{
|
||||||
client.Timeout = TimeSpan.FromSeconds(10);
|
client.Timeout = TimeSpan.FromMilliseconds(Timeout);
|
||||||
|
|
||||||
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, $"{whoisServerUrl}/kor/whois.jsc")
|
string clientAddress = Program.GetAppConfig("WhoisClientAddress");
|
||||||
|
|
||||||
|
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, Program.GetAppConfig("WhoisServerUrl"))
|
||||||
{
|
{
|
||||||
Content = new StringContent($"query={Uri.EscapeDataString(query)}&ip=141.101.82.1", Encoding.UTF8, "application/x-www-form-urlencoded")
|
Content = new StringContent($"query={Uri.EscapeDataString(query)}&ip={clientAddress}", Encoding.UTF8, "application/x-www-form-urlencoded")
|
||||||
};
|
};
|
||||||
|
|
||||||
request.Headers.Add("Accept", "*/*");
|
request.Headers.Add("Accept", "*/*");
|
||||||
request.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.3124.77");
|
request.Headers.Add("User-Agent", Program.GetAppConfig("WhoisUserAgent"));
|
||||||
client.DefaultRequestHeaders.Referrer = new Uri($"{whoisServerUrl}/kor/whois/whois.jsp");
|
client.DefaultRequestHeaders.Referrer = new Uri(Program.GetAppConfig("WhoisReferrerUrl"));
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
|
@ -7,6 +7,11 @@
|
||||||
<add key="DevToolsPrefix" value="http://localhost:9222/"/>
|
<add key="DevToolsPrefix" value="http://localhost:9222/"/>
|
||||||
<add key="AzureAiServiceUrl" value="https://ai-catswords656881030318.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview"/>
|
<add key="AzureAiServiceUrl" value="https://ai-catswords656881030318.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview"/>
|
||||||
<add key="AzureAiServiceApiKey" value=""/>
|
<add key="AzureAiServiceApiKey" value=""/>
|
||||||
|
<add key="WhoisServerUrl" value="https://xn--c79as89aj0e29b77z.xn--3e0b707e/kor/whois.jsc"/>
|
||||||
|
<add key="WhoisReferrerUrl" value="https://xn--c79as89aj0e29b77z.xn--3e0b707e/kor/whois/whois.jsp"/>
|
||||||
|
<add key="WhoisUserAgent" value="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.3124.77"/>
|
||||||
|
<add key="WhoisClientAddress" value="141.101.82.1"/>
|
||||||
|
<add key="DnsServerAddress" value="1.1.1.1"/>
|
||||||
</appSettings>
|
</appSettings>
|
||||||
<startup>
|
<startup>
|
||||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2"/>
|
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2"/>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user