이것은 내 컴퓨터 네트워크 인터페이스 컬렉션을 반환하려는 클래스입니다. 나는 IEnumerable을 반환하도록 선택하고 그것을 수행하는 방법을 모른다 (나는 새로운 개발자 임). 또는 maybee 거기에 내 수업을 구축하는 타자 방법은 무엇입니까?모든 컴퓨터 네트워크 인터페이스 컬렉션을 반환하십시오.
public class NetworkAdapter
{
private string _name;
private string _id;
private string _description;
private string _ipAddress;
private string _gatewayIpAddress;
private string _speed;
private string _networkInterfaceType;
private string _macAddress;
public IEnumerable<NetworkAdapter> getAdapterInfo()
{
foreach (NetworkInterface adapter in NetworkInterface.GetAllNetworkInterfaces())
{
IPInterfaceProperties properties = adapter.GetIPProperties(); //fetch network configuration properties
foreach (IPAddressInformation uniCast in properties.UnicastAddresses)
{
if (!IPAddress.IsLoopback(uniCast.Address) && uniCast.Address.AddressFamily != AddressFamily.InterNetworkV6) //ignore loop-back addresses & IPv6 internet protocol family
{
_name = adapter.Name;
_id = adapter.Id;
_description = adapter.Description;
_ipAddress = uniCast.Address.ToString();
_networkInterfaceType = adapter.NetworkInterfaceType.ToString();
_speed = adapter.Speed.ToString("#,##0");
_macAddress = adapter.GetPhysicalAddress().ToString();
foreach (GatewayIPAddressInformation gatewayAddress in adapter.GetIPProperties().GatewayAddresses)
{
_gatewayIpAddress = gatewayAddress.Address.ToString();
}
}
}
}
yield return new NetworkAdapter att;
}
}
어디에 넣어 줄 필요가 _gatewayIpAddress = string.Join ("", adapater.GetIPProperties(). GatewayAddresses);? – user1710944
@ user1710944 - 당신은'_gatewayIpAddress = lastGatewayAddress == null 대신에 사용하겠습니까? null : lastGatewayAddress.ToString()'. 이것은'gatewayIpAddresses' 문자열이 무엇을 원하는지에 달려 있습니다. – Lee
f에서 기본 게이트웨이가 비어 있습니다. 첫 번째 어댑터 및 두 번째 그냥 System.Net.NetworkInformation.SystemGatewayIPAddressInformation – user1710944