INetworkManager.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Net.NetworkInformation;
  4. using Vinno.FIS.Sonopost.Features.Network;
  5. namespace Vinno.FIS.Sonopost.Managers.Interfaces
  6. {
  7. internal interface INetworkManager : ISonopostManager
  8. {
  9. /// <summary>
  10. /// 当前显示的网络改变时触发
  11. /// </summary>
  12. event EventHandler<NetworkInterfaceInfo> CurrentNetworkChanged;
  13. /// <summary>
  14. /// 当WIFI Level改变时触发
  15. /// </summary>
  16. event EventHandler<int> CurrentWifiLevelChanged;
  17. /// <summary>
  18. /// 当前选择的网络
  19. /// </summary>
  20. NetworkInterfaceInfo CurrentNetwork { get; }
  21. /// <summary>
  22. /// 当前Wifi强度
  23. /// </summary>
  24. int CurrentWifiLevel { get; }
  25. /// <summary>
  26. /// 设置网络
  27. /// </summary>
  28. /// <param name="macAddress"></param>
  29. /// <param name="enableDhcp"></param>
  30. /// <param name="ip"></param>
  31. /// <param name="subnetMask"></param>
  32. /// <param name="gateway"></param>
  33. /// <param name="preferredDns"></param>
  34. /// <param name="standbyDns"></param>
  35. bool SetNetworkInfo(string macAddress, bool enableDhcp, string ip = "", string subnetMask = "", string gateway = "", string preferredDns = "", string standbyDns = "");
  36. /// <summary>
  37. /// 刷新DNS
  38. /// </summary>
  39. bool FlushDns();
  40. /// <summary>
  41. /// 重置Winsock
  42. /// </summary>
  43. bool ResetWinSock();
  44. /// <summary>
  45. /// Ping ip
  46. /// </summary>
  47. /// <param name="address"></param>
  48. /// <returns></returns>
  49. IPStatus Ping(string address, int timeOut = 5000);
  50. /// <summary>
  51. /// 设置双网卡
  52. /// </summary>
  53. /// <param name="outsideMacAddress"></param>
  54. /// <returns></returns>
  55. bool SetDualNetwork(string outsideMacAddress);
  56. /// <summary>
  57. /// 保存双网卡设置
  58. /// </summary>
  59. /// <param name="outsideMacAddress">外网网卡地址</param>
  60. /// <returns></returns>
  61. SetDualNetworkResult SetDualNetworkEnable(string outsideMacAddress);
  62. /// <summary>
  63. /// 取消双网卡设置
  64. /// </summary>
  65. /// <returns></returns>
  66. SetDualNetworkResult SetDualNetworkDisable();
  67. /// <summary>
  68. /// 所有网络列表
  69. /// </summary>
  70. IList<NetworkInterfaceInfo> GetAllNetworkInterfaceInfos();
  71. /// <summary>
  72. ///
  73. /// </summary>
  74. /// <param name="sender"></param>
  75. /// <param name="e"></param>
  76. void OnNetworkAddressChanged(object sender, EventArgs e);
  77. /// <summary>
  78. /// 刷新网络
  79. /// </summary>
  80. void RefreshAllNetworks(bool wifiScan);
  81. }
  82. }