Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >C# 在指定的IP地址中获得一个设备的MAC(物理)地址

C# 在指定的IP地址中获得一个设备的MAC(物理)地址

原创
作者头像
用户8671053
修改于 2021-11-02 07:58:26
修改于 2021-11-02 07:58:26
1.5K00
代码可运行
举报
文章被收录于专栏:码农的生活码农的生活
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
using System.Net;
using System.Net.NetworkInformation;
/// <summary>
/// Holds utilities for working with networks, Ethernet, etc.
/// </summary>
public static class NetworkUtils
{
    //

http://www.codeproject.com/KB/IP/host_info_within_network.aspx
    [System.Runtime.InteropServices.DllImport("iphlpapi.dll",

ExactSpelling = true)]
    static extern int SendARP(int DestIP, int SrcIP, byte[]

pMacAddr, ref int PhyAddrLen);

/// <summary>
/// Gets the MAC address (<see cref="PhysicalAddress"/>)  

associated with the specified IP.
    /// </summary>
    /// <param name="ipAddress">The remote IP address.</param>
    /// <returns>The remote machine's MAC address.</returns>
    public static PhysicalAddress GetMacAddress(IPAddress

ipAddress)
    {
        const int MacAddressLength = 6;
        int length = MacAddressLength;
        var macBytes = new byte[MacAddressLength];
        SendARP(BitConverter.ToInt32(ipAddress.GetAddressBytes(),

0), 0, macBytes, ref length);
        return new PhysicalAddress(macBytes);
    }
}
[TestClass()]
public class NetworkUtilsTests
{
    [TestMethod()]
    public void GetMacAddress_BroadcastIP_NonzeroMac()
    {
        IPAddress ipAddress = IPAddress.Broadcast;

    PhysicalAddress actual = NetworkUtils.GetMacAddress 

(ipAddress);
        Console.WriteLine(actual.ToString());

    Assert.AreNotEqual(PhysicalAddress.None, actual);
}

}</pre> 

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
PHP-PDO介绍
方法一:mysql扩展【这种方式php7已经淘汰】 方法二:mysqli扩展 方法三:PDO扩展
cwl_java
2020/03/26
2.6K0
PHP使用了PDO还可能存在sql注入的情况
“用 PDO 来防止 SQL 注入。”大概学过 PHP 的都听说过这句话。代码中出现了 PDO 就行了吗?答案肯定是否定的。接下来给大家介绍几种使用了 PDO 还是不能防止 sql 注入的情况。
信安之路
2018/08/08
4.3K0
PHP使用了PDO还可能存在sql注入的情况
php利用反射优雅的实现工厂
php的反射机制可以带参构造对象,利用这个特性可以很方便的实现工厂: function factory($class, $args){ if(class_exists($class)){ return (new \ReflectionClass($class))->newInstanceArgs($args); } } $db = array( 'PDO', array( 'mysql:dbname=test;host=localhost', 'root', 'r
码农二狗
2018/06/29
5030
PHP中PDO的基本使用
以上俩种均可读取数据库数据,但是query()用于简单查询,而prepare()强大安全。
岳泽以
2023/04/23
1.6K0
PHP中PDO的基本使用
PHP PDO操作MYSQL封装类
<?php /** auther soulence 调用数据类文件 modify 2015/06/12 */ class DBConnect { private $dbname = null;
用户7108768
2021/09/23
3.5K0
PDO详解
一、PDO诞生的意义 PHP对数据库支持的抽象度不够,接口不统一。每一种数据库环境都必须重新定义数据库的操作。在这种背景下,统一操作接口PDO诞生了。 在PHP中,有三种数据库连接方式: (1)mysql 最常用,过程式风格的一种应用 (2)mysqli,mysql函数的增强版,提供面向对象和过程两种风格的API,增加了预编译和参数绑定等新的特性 (3)PDO统一抽象接口,更类似于mysqli 二、PDO常用函数 PDO中包含三个预定义类:PDO、PDOStatement和PDOException (1)P
lonelydawn
2018/02/09
2.1K0
PDO详解
php 设计模式-数据映射模式(应用程序与数据库交互模式)
一般,client是业务逻辑层,UserMapper是数据访问层。UserTable底层数据结构。 我们尽量做到如果表User修改了: 1)工具重新自动生成UserTable类 2)只修改client代码和少量的UserMapper代码,一般修改UserMapper的常量const的内容就可以了。
黄规速
2022/04/14
5460
PHP中的PDO对象操作学习(一)初始化PDO及原始SQL语句操作
PDO 已经是 PHP 中操作数据库事实上的标准。包括现在的框架和各种类库,都是以 PDO 作为数据库的连接方式。基本上只有我们自己在写简单的测试代码或者小的功能时会使用 mysqli 来操作数据库。注意,普通的 mysql 扩展已经过时了哦!
硬核项目经理
2020/12/30
1.4K0
[PHP] 使用适配器模式处理数据库对象
将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原来由于接口不兼容而不能一起工作的那此类可以一起工作
唯一Chat
2021/04/01
4020
采用单例模式编写PHP的PDO类
下面的代码是用此前一个名为MyPDO的类改写的,引入了单例模式来保证在全局调用中不会重复实例化这个类,降低系统资源的浪费。
魏杰
2022/12/23
4750
PHP数据库扩展mysql、mysqli及pdo
1、mysql <?php $conn = mysql_connect("localhost", "root", "") or die("Mysql connect error"); my
Clive
2018/04/19
3.7K0
PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)
PHP与MySQL的连接有三种API接口,分别是:PHP的MySQL扩展 、PHP的mysqli扩展 、PHP数据对象(PDO) ,下面针对以上三种连接方式做下总结,以备在不同场景下选出最优方案。 PHP的MySQL扩展是设计开发允许php应用与MySQL数据库交互的早期扩展。MySQL扩展提供了一个面向过程的接口,并且是针对MySQL4.1.3或者更早版本设计的。因此这个扩展虽然可以与MySQL4.1.3或更新的数据库服务端进行交互,但并不支持后期MySQL服务端提供的一些特性。由于太古老,又不安全,所以
joshua317
2018/04/09
8.8K0
PHP中的MySQLi扩展学习(六)MySQLI_result对象操作
在之前的文章中,我们就已经接触过 MYSQLI_result 相关的内容。它的作用其实就是一个查询的结果集。不过在 PDO 中,一般直接通过 query() 或者 PDOStatement 对象进行查询之后就会返回结果。但在 MySQLi 中,会把查询到的结果也放入一个对象中,这就是 MySQLI_result 对象。
硬核项目经理
2021/01/29
3.1K0
PHP PDO MySQL
连接 // 数据源 $dsn='mysql:host=localhost;dbname=imooc'; // uri 形式 $dsn='uri:file://G:\path' ... $pdo=new PDO($dsn,$username,$password); var_dump($pdo); exec() 执行一条 SQL 语句,并返回其受影响的行数。对于 select 没有作用。 创建表 插入记录 更新 删除 $query=<<<EOF CREATE TABLE IF
康怀帅
2018/02/28
3.8K0
[PHP] PHP PDO与mysql的连接单例防止超时情况处理
这个数据库类主要处理了单例模式下创建数据库对象时,如果有两次较长时间的间隔去执行sql操作,再次处理会出现连接失败的问题,利用一个cache数组存放pdo对象与时间戳,把两次执行之间的时间进行了比较,如果间隔超过了10秒就再次new PDO创建连接,没有超过的情况下会继续使用原来的连接,并且因为每次使用后会使连接续期,cache数组里的时间戳也进行了续期. 每次执行操作都会从cache数组中获取下连接,多次执行不超过10秒的情况下,只会有一个连接
唯一Chat
2019/11/18
2K0
PHP中的MySQLi扩展学习(三)mysqli的基本操作
我们继续 MySQLi 扩展的学习,上篇文章中提到过,MySQLi 的扩展相对于 PDO 来说功能更加的丰富,所以我们依然还会在学习过程中穿插各种 MySQLi 中好玩的方法函数。不过,今天的主角是 MySQLi 中如何执行 SQL 语句以及多条 SQL 语句的执行。
硬核项目经理
2021/01/28
3.1K0
[日常] PHP与Mysql测试kill慢查询并检验PDO的错误模式
<?php try{ //1. pdo的错误模式,抛出异常,不记录到php的error日志,不影响代码继续运行, $opts=array(
唯一Chat
2019/09/10
1K0
php mysql PDO 查询操作的实例详解
php mysql PDO 查询操作的实例详解 <?php $dbh = new PDO('mysql:host=localhost;dbname=access_control', 'root', '
用户2323866
2021/07/08
2.5K0
相关推荐
PHP-PDO介绍
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验