知识改变人生zzz.blog.chinaunix.net
zhangzhenzhong
目前主要从事C++软件开发
全部博文(60)
2013年(3)
2012年(3)
2010年(6)
2009年(23)
2008年(25)
songlw41
garyhuc
cff23674
84378567
格伯纳
Bsolar
qq9402
胡田新
屌丝变态
nhgy200
分类: 系统运维
2010-06-08 10:37:42
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);//获取本机的IPpublic string getLocalIP(){ string strHostName = Dns.GetHostName(); //得到本机的主机名 IPHostEntry ipEntry = Dns.GetHostByName(strHostName); //取得本机IP string strAddr = ipEntry.AddressList[0].ToString(); return(strAddr);}//获取本机的MACpublic 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);}//获取远程主机IPpublic 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);}//获取远程主机MACpublic 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#获取IP及MAC地址 方法
登录 注册