私はローカルIPアドレスを返すC#関数を持っています。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 "";
}
}
2つの機能が正しく機能します。
しかし、私がしたいのは、同じLANネットワーク上で他のPCのIPアドレスを取得することです。
私はそれらのIPアドレスを取得した場合はその後、私の
GetMACAddressByIP(string ip)
関数への入力値となります。
しかし私の問題は、他のPCの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