C# socket获取对等方mac地址

 1     [DllImport("Iphlpapi.dll")]
 2         private static extern int SendARP(Int32 dest, Int32 host, ref Int64 mac, ref Int32 length);
 3
 4         public static string getRemoteMac(string remoteIP)
 5         {
 6             var addr = IPAddress.Parse(remoteIP);
 7             int ip4 = BitConverter.ToInt32((addr.GetAddressBytes()), 0);
 8
 9             try
10             {
11                 long macinfo = 0;
12                 int len = 6;
13                 int res = SendARP(ip4, 0, ref macinfo, ref len);
14                 return Convert.ToString(macinfo, 16);
15             }
16             catch (Exception err)
17             {
18                 Console.WriteLine("Error:{0}", err.Message);
19             }
20             return 0.ToString();
21         }
22
23     static void Main(string[] args)
24         {
25             Console.WriteLine(getRemoteMac("192.168.0.150"));
26             Console.ReadLine();
27         }

注意这种方式,很多大公司都有不同的防火墙,这种方式用arp攻击来实现的,但是有的防火墙会屏蔽arp攻击,这种方式不是很稳定

时间: 2024-12-17 21:48:48

C# socket获取对等方mac地址的相关文章

iphone开发之获取网卡的MAC地址和IP地址

本文转载至 http://blog.csdn.net/arthurchenjs/article/details/6358489 这是获取网卡的硬件地址的代码,如果无法编译通过,记得把下面的这几个头文件加上把. #include <sys/socket.h> // Per msqr#include <sys/sysctl.h>#include <net/if.h>#include <net/if_dl.h> #pragma mark MAC addy// Re

windows获取本机MAC地址并写入文件的bat

windows获取本机MAC地址并写入文件的bat MAC(Media Access Control)地址,或称为 MAC地址.硬件地址,用来定义网络设备的位置. bat代码例如以下: @echo off echo GET MAC ADDRESS echo PLEASE WAIT... getmac /v > mac.txt echo GET MAC ADDRESS SUCCESS pause exit 查看mac.txt,获取成功 连接名 网络适配器 物理地址 传输名称 ===========

获取设备的mac地址可靠的方法

参考自:http://www.open-open.com/lib/view/open1433406847322.html /** * 获取设备的mac地址 * * @param ac * @param callback * 成功获取到mac地址之后会回调此方法 */ public static void getMacAddress(final Activity ac, final SimpleCallback callback) { final WifiManager wm = (WifiMan

Android:获取设备的mac地址可靠的方法

/** * 获取设备的mac地址 * * @param ac * @param callback * 成功获取到mac地址之后会回调此方法 */ public static void getMacAddress(final Activity ac, final SimpleCallback callback) { final WifiManager wm = (WifiManager) ac .getSystemService(Service.WIFI_SERVICE); // 如果本次开机后打

Android -- 获取IP和MAC地址

通过InetAddress.getLocalHost()得到始终是"127.0.0.1",要想得到真正的网络ip地址要通过下面的方法: 首先新建一个工程,修改AndroidManifest.xml文件增加用户权限,如下: <uses-permission android:name="android.permission.INTERNET"/> <!--必写--> <uses-permission android:name="a

C#获取IP及MAC地址 方法

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 Int

js获取本机mac地址,IP地址,计算机名

<!DOCTYPE HTML> <html> <head> <title>js获取本机mac地址,IP地址,计算机名</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta content="MSHTML 6.00.2800.1106" name="

Unity网络通讯(一)获取计算机的MAC地址

1 string GetMac() 2 { 3 string mac = ""; 4 mac = GetMacAddressBySendARP(); 5 return mac; 6 } 7 [DllImport("Iphlpapi.dll")] 8 static extern int SendARP(Int32 DestIP, Int32 SrcIP, ref Int64 MacAddr, ref Int32 PhyAddrLen); 9 /// <summa

[C#]获取电脑的MAC地址

C#实现获取电脑的MAC地址 /// <summary>    /// Microsoft提供的WMI(Windows Management Instrumentation)中提供了一个    /// Win32_NetworkAdapterConfiguration的类,定义了获取MAC地址的方法,因此只要构造一个定义为Win32_NetworkAdapter     /// Configuration的WMI类,从中取出MAC地址的值即可.需要手动添加System.Management链接