开发者社区> 技术小牛人> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

根据ip地址获得Mac地址的一种方法

简介:
+关注继续查看
复制代码
ExpandedBlockStart.gifCode
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;
    }


}
复制代码

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
如何修改mac地址
前几天,一个朋友要求修改自己机器的MAC地址,我告诉在网络-》属性-》配置-》高级-》Network address,输入mac就可以,可以他讲他没有这一项,只好现场提供服务。
866 0
mac下使用brew安装node.js环境
mac下使用brew安装node.js环境
26 0
Mac下使用pecl安装PHP的swoole扩展实践
我记得之前用brew安装的PHP,再使用pecl很方便就可以安装swoole,于是我把自带的PHP卸载然后重新使用brew安装,并且安装了pecl,在通过pecl安装了swoole扩展,把这个安装过程记录下来,方便下次使用吧
192 0
mac电脑上安装appium报错:Failed at the appium-chromedriver@4.25.1 postinstall script.
mac电脑安装appium,装好node.js后,使用命令:npm install appium@1.18.0,安装appium,报如下错误
106 0
Mac 环境下 RabbitMQ 的安装
几个月之前,手上的一个项目开始使用 RabbitMQ,没错,就是跟兔子跑得一样快的一个消息队列。 之前并没有做系统的学习,只是了解一些简单用法,网上找一些例子,加上自己的加工,基本也可以满足常规的使用需求。
68 0
Mac安装vue.js开发环境
本来以为在Mac上搭建vue.js的环境挺简单的,谁知遇到各种问题(可能是RP问题),网上解决的方法也寥寥无几,这里就记录下遇到的坑。
296 0
【开发环境】Mac 安装 PyCharm 开发环境 ( 下载 PyCharm | 安装 PyCharm )
【开发环境】Mac 安装 PyCharm 开发环境 ( 下载 PyCharm | 安装 PyCharm )
71 0
【开发环境】Mac 中安装 Python3 最新版本 ( 下载 Python 最新版本 | 安装 Python3 | 验证 Python3 )(二)
【开发环境】Mac 中安装 Python3 最新版本 ( 下载 Python 最新版本 | 安装 Python3 | 验证 Python3 )(二)
44 0
【开发环境】Mac 中安装 Python3 最新版本 ( 下载 Python 最新版本 | 安装 Python3 | 验证 Python3 )(一)
【开发环境】Mac 中安装 Python3 最新版本 ( 下载 Python 最新版本 | 安装 Python3 | 验证 Python3 )(一)
79 0
5723
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载