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.
- Für Ihre erste Frage, ist es möglich, die Vervielfältigung dieser Frage auf stackoverflow.com/questions/1993891/... Sehen, ob es hilft.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Methode weiter unten ist in Ordnung arbeiten mit Windows (getestet auf WinXP und bis) und Linux mit Mono (getestet auf ubuntu, Suse, Redhat).
Nein, Sie können nicht in der Regel erhalten Sie die MAC-Adresse eines PC, der ausgeschaltet ist. Dies ist eine hardware-Kennung, die in dem Paket gesendet. Die einzige Hoffnung, die Sie haben würde - und es ist ein hack, ist zu überprüfen, die lokalen Systeme der ARP-Tabelle, z.B. gehen Sie eine Befehlszeile und geben Sie " arp-a
Dies ist aber nicht machbar für das, was Sie tun möchten. In der Tat, auch wenn Sie wusste, dass die IP-ich glaube, die Technik, die Sie haben, ist fraglich und wird sicherlich nicht in allen remote-Situationen (wenn vorhanden)
Einen Weg zu finden, die IP-Adressen der Computer im gleichen LAN zu starten, Ping alle möglichen IPs. Erhalten Sie beide -, IP-und MAC-Adresse in einem Schuss... von denen, die Antwort, das ist.
Finden, Maschine, ip-und mac-Adresse
cmd - > ipconfig/all
//Mac-Adresse [Ethernet-adapter Ethernet: > Physikalische Adresse]
//IP-Adresse [Ethernet-adapter Ethernet: > IPv4-Adresse]