zoukankan      html  css  js  c++  java
  • 根据ip地址获得Mac地址的一种方法

    Code
    public static class MacUtility
    {
        [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);

        
    public static string GetRemoteMac(string clientIP)
        {
            
    string ip = clientIP;

            
    if (ip == "127.0.0.1")

                ip 
    = GetLocalIP()[0];

            var ldest 
    = inet_addr(ip);

            Int64 macinfo 
    = new Int64();
            Int32 len 
    = 6;
            
    try
            {
                SendARP(ldest, 
    0ref macinfo, ref len);
            }
            
    catch
            {
                
    return "";

            }
            
    string originalMACAddress = Convert.ToString(macinfo, 16);
            
    if (originalMACAddress.Length < 12)
            {

                originalMACAddress 
    = originalMACAddress.PadLeft(12'0');

            }

            
    string macAddress;

            
    if (originalMACAddress != "0000" && originalMACAddress.Length == 12)
            {
                
    string mac1, mac2, mac3, mac4, mac5, mac6;
                mac1 
    = originalMACAddress.Substring(102);
                mac2 
    = originalMACAddress.Substring(82);
                mac3 
    = originalMACAddress.Substring(62);
                mac4 
    = originalMACAddress.Substring(42);
                mac5 
    = originalMACAddress.Substring(22);
                mac6 
    = originalMACAddress.Substring(02);
                macAddress 
    = mac1 + "-" + mac2 + "-" + mac3 + "-" + mac4 + "-" + mac5 + "-" + mac6;
            }
            
    else
            {
                macAddress 
    = "";
            }
            
    return macAddress.ToUpper();

        }
        
    public static string[] GetLocalIP()
        {
            
    string hostName = Dns.GetHostName();

            IPHostEntry ipEntry 
    = Dns.GetHostByName(hostName);

            IPAddress[] arr 
    = ipEntry.AddressList;

            
    string[] result = new string[arr.Length];

            
    for (int i = 0; i < arr.Length; i++)
            {

                result[i] 
    = arr[i].ToString();
            }
            
    return result;
        }


    }
  • 相关阅读:
    吐血巨献:VB网络编程(webbrowser+Inet+抓包封包+经验)
    亦思验证码识别系统3.1详解
    开机自动连接宽带程序
    轻松报选修智能报选修程序(适用于正方教学管理系统)
    低调发布一个百度谷歌关键字搜索工具
    解惑:Postmessage函数模拟鼠标单击指定坐标
    分享一些经典资源
    英文单词缩写查询
    css控制的个性导航栏
    导航栏中加入自动弹出下拉菜单
  • 原文地址:https://www.cnblogs.com/nuaalfm/p/1553520.html
Copyright © 2011-2022 走看看