C# 获取IP及MAC地址
来源:互联网 发布:excel数据双引号 编辑:程序博客网 时间:2024/05/29 08:45
public class HostInfo
{
/// <summary>
/// IP正则表达式
/// </summary>
const string _pattern = @"^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$";
/// <summary>
/// 获取本机主机名
/// </summary>
/// <returns></returns>
public static string GetHostName()
{
return System.Net.Dns.GetHostName();
}
/// <summary>
/// 本机IP
/// </summary>
/// <returns></returns>
public static string GetIP() //获取IP
{
string HostName = System.Net.Dns.GetHostName(); //得到主机名
IPHostEntry IpEntry = Dns.GetHostEntry(HostName); //得到主机IP
var localIp = string.Empty;
foreach (var ip in IpEntry.AddressList)
{
localIp = ip.ToString();
if (Regex.IsMatch(localIp, _pattern))
break;
}
return localIp;
}
/// <summary>
/// 本机MAC
/// </summary>
/// <returns></returns>
public static string GetMac() //获取Mac
{
string MacAddr = null;
ManagementObjectSearcher Query = new ManagementObjectSearcher("select * from Win32_NetworkAdapterConfiguration");
ManagementObjectCollection QueryCollection = Query.Get();
foreach (ManagementObject mo in QueryCollection)
{
if (mo["IPEnabled"].ToString() == "True")
MacAddr = mo["MacAddress"].ToString();
}
return (MacAddr);
}
/// <summary>
/// 外网IP
/// </summary>
/// <returns></returns>
public static string GetNetIP()
{
Uri uri = new Uri(@"http://www.ip138.com/ip2city.asp");//查本机网络IP的网页
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri);
req.Method = "POST";
req.ContentType = @"application/x-www-form-urlencoded";
req.ContentLength = 0;
req.CookieContainer = new CookieContainer();
req.GetRequestStream().Write(new byte[0], 0, 0);
HttpWebResponse res = (HttpWebResponse)(req.GetResponse());
StreamReader rs = new StreamReader(res.GetResponseStream(), Encoding.GetEncoding("GB18030"));
string txt = rs.ReadToEnd();
rs.Close();
req.Abort();
res.Close();
var ip = txt.Substring(txt.IndexOf('[') + 1, txt.Length - txt.LastIndexOf(']') - 11); //自己灵活取出IP
ip = ip.Trim('[').Trim(']');
if (Regex.IsMatch(ip, _pattern))
{
return ip;
}
return string.Empty;
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine(string.Format("当前主机名是:{0}", HostInfo.GetHostName()));
Console.WriteLine(string.Format("当前本机IP是:{0}", HostInfo.GetIP()));
Console.WriteLine(string.Format("当前外网IP是:{0}", HostInfo.GetNetIP()));
Console.WriteLine(string.Format("当前网卡地址是:{0}", HostInfo.GetMac()));
Console.ReadLine();
}
}
运行结果:
- C#获取IP及MAC地址
- C#获取IP及MAC地址
- C# 获取IP及MAC地址
- 获取iP及Mac地址
- C#获取IP及MAC地址的新方法
- js获取mac地址及ip地址
- C# 获取局域网IP和MAC地址
- C# 获取局域网IP和MAC地址
- C# 获取IP和MAC地址
- c#获取本地IP和MAC地址
- C#获取IP与MAC地址
- c#获取本地IP和MAC地址
- c#获取本地IP和MAC地址
- c#获取本地IP和MAC地址
- C# 获取本机IP MAC地址
- c#获取本地IP和MAC地址
- JAVASCRIPT获取客户端IP及MAC地址
- 获取本机ip及mac地址
- cppunit 安装
- 数据库设计中的14个技巧
- 继承学习5
- C# 读取大数据需要:进度条
- 属性
- C# 获取IP及MAC地址
- VC++.NET 技术内幕学习四
- 《WF编程》系列之43 - 承载工作流:持久性服务 Persistence Services
- Application.Run(new frmMain()) 未将对象引用设置到对象的实例。
- mysql 导入导出,字符集问题
- 继承学习6
- 起直流稳压(流)电子负载核心作用的功率 MOSFET
- java生成文件(不用手动创建不存在的路径)
- 派生类对基类的访问