发布时间:2021-10-08编辑:佚名阅读(2409)
using System.Net; using System; using System.Management; using System.Runtime.InteropServices; public class getIP { [DllImport("Iphlpapi.dll")] private static extern int SendARP(int dest, int host, ref long mac, ref int length); [DllImport("Ws2_32.dll")] private static extern int inet_addr(string ip); //获取本机的IP public string getLocalIP() { string strHostName = Dns.GetHostName(); //得到本机的主机名 IPHostEntry ipEntry = Dns.GetHostEntry(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.GetHostEntry(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 remoteIP) { int ldest = inet_addr(remoteIP); try { long macinfo = 0; int 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("主机名"); for (int i = 0; i < temp.Length; i++) { Console.WriteLine(temp[i]); } Console.WriteLine(gi.getRemoteMac("192.168.0.1")); } }
0人
0人
0人
0人