1、通过主机名获取局域网IP地址;
try
{
IPHostEntry ipHostEntry = Dns.GetHostEntry(txtHost.Text);//传递计算机名
if (ipHostEntry.Aliases.Length > 0)
{
foreach (string alias in ipHostEntry.Aliases)
txtIP.Text = alias;
}
//获取IP地址
foreach (IPAddress addr in ipHostEntry.AddressList)
txtIPAddress.Text = addr.ToString();//获取IP地址
}
catch
{
MessageBox.Show("错误的主机名。");
}
2、通过局域网IP地址获取主机名;
try
{
IPHostEntry ipHostEntry = Dns.GetHostByAddress(txtIP.Text); ;//传递IP地址
txtHostName.Text = ipHostEntry.HostName.ToString()//取得主机名
}
catch
{
MessageBox.Show("错误的IP地址。");
}
3、通过局域网IP地址获取Mac地址
public static string ReadMac(string ip)//传递IP地址,即可返回MAC地址
{
string mac = "";
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "nbtstat";
p.StartInfo.Arguments = "-a " + ip;
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.RedirectStandardOutput = true;
p.Start();
string output = p.StandardOutput.ReadToEnd();
int len = output.IndexOf("MAC Address = ");
if(len>0)
{
mac = output.Substring(len + 14, 17);
}
p.WaitForExit();
return mac;
}
4 #region bool IsIPAddress(str1) 判断是否是IP格式
/**/
/// <summary>
/// 判断是否是IP地址格式 0.0.0.0
/// </summary>
/// <param name="str1">待判断的IP地址</param>
/// <returns>true or false</returns>
public static bool IsIPAddress(string str1)
{
if (str1 == null || str1 == string.Empty || str1.Length < 7 || str1.Length > 15) return false;
string regformat = @"^/d{1,3}[/.]/d{1,3}[/.]/d{1,3}[/.]/d{1,3}$";
Regex regex = new Regex(regformat, RegexOptions.IgnoreCase);
return regex.IsMatch(str1);
}
#endregion