如题
解决方案 »
- asp.net发邮件的问题?óê?t?T·¨·¢?íμ? SMTP ·t???÷?£′?ê?′í?ó′ú???a 0x80040217?£·t???÷?ìó|?a not available
- 后台调用前台js函数的问题
- C#写数据到mysql,带参数的sql语句这样写哪里出错了?
- 由C++转向C#
- 如何使PictureBox的图片能够缩放,而不是用PictureBox的sizemode属性来进行图片缩放?
- 用SOCKET发送文件的问题
- fire fire
- C#中一个简单问题
- 请教一下大家使用C#+ffmpeg做视频解码的教程
- 如何在Crystal Report中用代码动态建立数据库连接,并用代码生成DataSet???
- 如何获取UDPSocket中的远程端点??
- vs2008创建win32控制台应用程序,如何引用Access 2010表中的数据?
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"));
}
}
我是要发ARP广播包,不是点对点地发
http://www.cnblogs.com/wayfarer/articles/75213.html