WhoisModel.cs 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. using economy.Helpers;
  2. namespace economy.Models.Whois
  3. {
  4. public class WhoisModel
  5. {
  6. private readonly DataGoKR _dataGoKR;
  7. public WhoisModel(DataGoKR dataGoKR)
  8. {
  9. _dataGoKR = dataGoKR;
  10. }
  11. // Domain 조회
  12. public async Task<Domain.Response> GetDomainInfo(string query)
  13. {
  14. Domain.Response parsedData = new();
  15. try
  16. {
  17. var uriBuilder = new UriBuilder(_dataGoKR.APIUrl)
  18. {
  19. Path = "/B551505/whois/domain_name",
  20. Query = $"serviceKey={_dataGoKR.APIKey}&query={query}&answer=xml"
  21. };
  22. var response = await _dataGoKR.httpClient.GetAsync(uriBuilder.Uri);
  23. if (response.IsSuccessStatusCode)
  24. {
  25. var xmlString = await response.Content.ReadAsStringAsync();
  26. parsedData = await Common.ParseXmlDataAsync<Domain.Response>(xmlString);
  27. if (parsedData.Result.ResultCode is 10000)
  28. {
  29. return parsedData;
  30. }
  31. }
  32. response.EnsureSuccessStatusCode();
  33. }
  34. catch (HttpRequestException e)
  35. {
  36. Console.WriteLine($"Request error: {e.Message}");
  37. }
  38. return parsedData;
  39. }
  40. // IP 조회
  41. public async Task<IP.Response> GetIPInfo(string query)
  42. {
  43. IP.Response parsedData = new();
  44. try
  45. {
  46. var uriBuilder = new UriBuilder(_dataGoKR.APIUrl)
  47. {
  48. Path = "/B551505/whois/ip_address",
  49. Query = $"serviceKey={_dataGoKR.APIKey}&query={query}&answer=xml"
  50. };
  51. var response = await _dataGoKR.httpClient.GetAsync(uriBuilder.Uri);
  52. if (response.IsSuccessStatusCode)
  53. {
  54. var xmlString = await response.Content.ReadAsStringAsync();
  55. parsedData = await Common.ParseXmlDataAsync<IP.Response>(xmlString);
  56. if (parsedData.Result.ResultCode is 10000)
  57. {
  58. return parsedData;
  59. }
  60. }
  61. response.EnsureSuccessStatusCode();
  62. }
  63. catch (HttpRequestException e)
  64. {
  65. Console.WriteLine($"Request error: {e.Message}");
  66. }
  67. return parsedData;
  68. }
  69. }
  70. }