C#获取IP及MAC地址 方法
2015-10-29 08:57
441 查看
C#获取IP及MAC地址 方法,比较齐全
using System.Net; using System; using System.Management; using System.Runtime.InteropServices; public class getIP { [DllImport("Iphlpapi.dll")] private static extern int SendARP(Int32 dest, Int32 host, ref Int64 mac, ref Int32 length); [DllImport("Ws2_32.dll")] private static extern Int32 inet_addr(string ip); //获取本机的IP public string getLocalIP() { string strHostName = Dns.GetHostName(); //得到本机的主机名 IPHostEntry ipEntry = Dns.GetHostByName(strHostName); //取得本机IP string strAddr = ipEntry.AddressList[0].ToString(); return (strAddr); } //获取本机的MAC public string getLocalMac() { string mac = null; ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration"); ManagementObjectCollection queryCollection = query.Get(); foreach (ManagementObject mo in queryCollection) { if (mo["IPEnabled"].ToString() == "True") mac = mo["MacAddress"].ToString(); } return (mac); } //获取远程主机IP public string[] getRemoteIP(string RemoteHostName) { IPHostEntry ipEntry = Dns.GetHostByName(RemoteHostName); IPAddress[] IpAddr = ipEntry.AddressList; string[] strAddr = new string[IpAddr.Length]; for (int i = 0; i < IPADDR.LENGTH; I++) { strAddr[i] = IpAddr[i].ToString(); } return (strAddr); } //获取远程主机MAC public string getRemoteMac(string localIP, string remoteIP) { Int32 ldest = inet_addr(remoteIP); //目的ip Int32 lhost = inet_addr(localIP); //本地ip try { Int64 macinfo = new Int64(); Int32 len = 6; int res = SendARP(ldest, 0, ref macinfo, ref len); return Convert.ToString(macinfo, 16); } catch (Exception err) { Console.WriteLine("Error:{0}", err.Message); } return 0.ToString(); } public static void Main(string[] args) { getIP gi = new getIP(); Console.WriteLine("本地网卡信息:"); Console.WriteLine(gi.getLocalIP() + " - " + gi.getLocalMac()); Console.WriteLine("\n\r远程网卡信息:"); string[] temp = gi.getRemoteIP("scmobile-tj2"); for (int i = 0; i < TEMP.LENGTH; I++) { Console.WriteLine(temp[i]); } Console.WriteLine(gi.getRemoteMac("192.168.0.3", "192.168.0.1")); } }
相关文章推荐
- c#面向对象
- C# 一步一步完成一个简单的计算器 第二步---实现单目运算
- C#编程--运算符
- 带你一步步的了解“C#事件”机制
- c#随机生成中文姓名
- c# ListView的网格简单用法
- C#编程--输入和输出
- c# 语言基础
- C# 之 管理配置文件(二)
- C#写的windows应用程序打包
- 2.C#的输入、输出与运算符、数据类型
- Head First C#(赛狗日)
- Head First C#(赛狗日)
- c#—— Task.FromResult 的使用
- C# ManualResetEvent和AutoResetEvent 使用笔记
- C#操作剪贴板实现复制粘贴
- c# 5.0——async 和 await
- C#学习之委托
- C#语言基础
- C#串口通讯(变参、委托、线程安全队列)