MAC-Adresse und IP-Adresse

Ich habe eine C# Funktion, die die Rückkehr der Lokalen IP-Adresse.

private string GetLocalIPByHostName()
    {
        string host = Dns.GetHostName();
        string LocalIP = string.Empty;
        IPHostEntry ip = Dns.GetHostEntry(host);
        foreach (IPAddress _IPAddress in ip.AddressList)
        {
            if (_IPAddress.AddressFamily.ToString() == "InterNetwork")
            {
                LocalIP = _IPAddress.ToString();

            }
        }
        return LocalIP;
    }

Durch die Nutzung dieser lokalen IP-Adresse, ich habe versucht, um die MAC-Adresse.

protected string GetMACAddressByIP(string ip)
    {
        try
        {
            ManagementObjectSearcher query= new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection queryCollection = query.Get();
            bool Found = false;
            foreach(ManagementObject _ManagementObject in queryCollection)
            {
                if (_ManagementObject["IPAddress"] != null)
                {
                    string _IPAddress;
                    _IPAddress = string.Join(".", (string[])_ManagementObject["IPAddress"]);

                    if(!_IPAddress.Equals(""))
                    {
                        if(_IPAddress.Equals(ip.Trim()))
                        {
                                Found = true;
                        }
                    }

                    if(Found == true)
                    {
                        if (_ManagementObject["macaddress"] != null)
                        {
                            if (!_ManagementObject["macaddress"].Equals(""))
                            {
                                return (string)_ManagementObject["macaddress"];
                            }
                        }
                    }
                    else
                    {
                        Found = false;
                    }
                }
            }

            MessageBox.Show("No Mac Address Found");
            return "";
        }
        catch(Exception ex)
        {
            MessageBox.Show(ex.Message);
            return "";
        }
    }

Zwei der Funktionen arbeiten korrekt.

Aber was ich tun möchte, ist immer anderen PC die IP-Adresse im gleichen LAN-Netzwerk.

Dann, Wenn ich die IP-Adressen , wird der input-Wert zu meinem

GetMACAddressByIP(string ip)

Funktion.

Aber mein problem ist, ich weiß nicht, wie man andere pc-IP-Adresse.

private List<string> GetRemoteIPs(string LocalIPAddress)
    {
        List<string> RemoteIPs = new List<string>();

             /*** Here code will be as suggestion of yours.  ****/    

        return RemoteIPs;
    }

Dann, Nächste Frage

Ist dies möglich, um die MAC-Adresse des PC, die ist schon ausgeschaltet ?

Jede Lösung wird sehr geschätzt.

Schreibe einen Kommentar