我有一個C#函數返回本地IP地址。MAC地址和IP地址
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;
}
通過使用此本地IP地址,我試圖獲得MAC地址。
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 "";
}
}
其中兩個功能正常工作。
但是我想要做的是在同一個LAN網絡上獲取其他PC的IP地址。
然後,如果我得到的IP地址,這將是輸入值我
GetMACAddressByIP(string ip)
功能。
但我的問題是我不知道如何獲得其他電腦的IP地址。
private List<string> GetRemoteIPs(string LocalIPAddress)
{
List<string> RemoteIPs = new List<string>();
/*** Here code will be as suggestion of yours. ****/
return RemoteIPs;
}
然後,接下來的問題是
這是可能獲得PC這已經是關閉的MAC地址?
每個解決方案都將非常感激。
關於第一個問題,就是這個問題在 一個可能的重複http://stackoverflow.com/questions/1993891/list-the-ip-address-of-all-computers-connected-to -a-single-lan 看看是否有幫助。 – Tariqulazam