refactor: 枚举移入Models目录,命名空间更新为Rainbow.Entity.Models
大石头
authored at
2026-07-02 12:54:58
RainbowBridge
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Rainbow.Services;
/// <summary>网口管理接口。各平台实现网口列表、状态和基本信息采集</summary>
public interface INetworkInterfaceManager
{
/// <summary>获取所有网口信息</summary>
/// <returns>网口信息列表</returns>
Task<List<NetworkInterfaceInfo>> GetInterfacesAsync();
/// <summary>获取指定网口信息</summary>
/// <param name="name">网口名称</param>
/// <returns>网口信息,未找到返回 null</returns>
Task<NetworkInterfaceInfo?> GetInterfaceAsync(String name);
/// <summary>启用网口</summary>
/// <param name="name">网口名称</param>
/// <returns>是否成功</returns>
Task<Boolean> EnableAsync(String name);
/// <summary>禁用网口</summary>
/// <param name="name">网口名称</param>
/// <returns>是否成功</returns>
Task<Boolean> DisableAsync(String name);
}
/// <summary>网口信息 DTO</summary>
public class NetworkInterfaceInfo
{
/// <summary>网口名称</summary>
public String Name { get; set; } = String.Empty;
/// <summary>MAC 地址</summary>
public String Mac { get; set; } = String.Empty;
/// <summary>IPv4 地址列表</summary>
public List<String> IPv4Addresses { get; set; } = [];
/// <summary>IPv6 地址列表</summary>
public List<String> IPv6Addresses { get; set; } = [];
/// <summary>网口状态(Up/Down/Unknown)</summary>
public String Status { get; set; } = "Unknown";
/// <summary>速率(Mbps),0 表示未知</summary>
public Int64 Speed { get; set; }
/// <summary>接收字节数</summary>
public Int64 RxBytes { get; set; }
/// <summary>发送字节数</summary>
public Int64 TxBytes { get; set; }
/// <summary>是否为物理网口(false 表示虚拟/隧道接口)</summary>
public Boolean IsPhysical { get; set; }
}
|