[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);
/// <summary>
/// 获取客户机MAC地址 根据IP地址 获取机器的MAC地址
/// </summary>
/// <returns></returns>
public static string GetBarMACIP(string strIP)
{
//MAC信息
string mac_dest = "";
try
{
int ldest = inet_addr(strIP); //目的地的ip
int lhost = inet_addr(""); //本地服务器的ip
Int64 macinfo = new Int64();
int len = ;
int res = SendARP(ldest, , ref macinfo, ref len);
string mac_src = macinfo.ToString("X");
if (mac_src == "")
{
return "";
}
while (mac_src.Length < )
{
mac_src = mac_src.Insert(, "");
} for (int i = ; i < ; i++)
{
if ( == (i % ))
{
if (i == )
{
mac_dest = mac_dest.Insert(, mac_src.Substring(i, ));
}
else
{
mac_dest = "-" + mac_dest.Insert(, mac_src.Substring(i, ));
}
}
}
return mac_dest;
}
catch
{
return "";
}
} /// <summary>
/// 取得IP地址
/// </summary>
/// <returns></returns>
public static string GetIp()
{
string str = "";
//穿过代理服务器取远程用户真实IP地址:
if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null)
str = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
else
str = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
return str;
}

获取客户机MAC地址 根据IP地址 获取机器的MAC地址 / 获取真实Ip地址的更多相关文章

  1. php 获取客户端的ip、地理信息、浏览器信息、本地真实ip

    转自:http://www.blhere.com/948.html 这是非常实用的php常用类.获取客户端的ip.地理信息.浏览器信息.本地真实ip 1234567891011121314151617 ...

  2. 获取客户机的ip和mac地址

    只获取clientIP package com.ppms.utils; import javax.servlet.http.HttpServletRequest; /** * Created by l ...

  3. php获取客户机mac地址

    @exec("arp -a",$array); //执行arp -a命令,结果放到数组$array中 foreach($array as $value){ //匹配结果放到数组$m ...

  4. asp.net 获取客户机IP地址

    /// <summary> ///get client IP /// </summary> /// <returns></returns> public ...

  5. nodejs获取客户机ip

    /** * Created by chaozhou on 2015/11/24. */ var getIp = function(req){ var ipStr = req.headers['x-fo ...

  6. 【整理】PHP获取客户端真实IP地址详解

    php获取客户端IP地址有四种方法,这五种方法分别为REMOTE_ADDR.HTTP_CLIENT_IP.HTTP_X_FORWARDED_FOR.HTTP_VIA. REMOTE_ADDR 是你的客 ...

  7. 绕过CDN获取服务器真实IP地址

    相关视频链接:(https://blog.sechelper.com/20220914/penetration-testing-guide/cdn-bypass) CDN(Content Delive ...

  8. RPC 编程 使用 RPC 编程是在客户机和服务器实体之间进行可靠通信的最强大、最高效的方法之一。它为在分布式计算环境中运行的几乎所有应用程序提供基础。

    RPC 编程 使用 RPC 编程是在客户机和服务器实体之间进行可靠通信的最强大.最高效的方法之一.它为在分布式计算环境中运行的几乎所有应用程序提供基础.本文介绍 RPC 客户机和服务器之间基本的事件流 ...

  9. 倍福TwinCAT(贝福Beckhoff)基础教程5.1 TwinCAT-4 获取本机名称和网卡名称

    使用命令FB_GetHostName来获取本机名称,返回的是一个字符串   使用命令FB_GetAdaptersInfo获取网卡信息(注意采集到的是一个非常复杂的类型,本身是一个数组,数组的每个元素又 ...

随机推荐

  1. 【NOIP2016提高A组模拟9.17】数格子

    题目 分析 设表示每一行的状态,用一个4位的二进制来表示,当前这一行中的每一个位数对下一位有没有影响. 设\(f_{i,s}\)表示,做完了的i行,其状态为s,的方案数. 两个状态之间是否可以转移就留 ...

  2. linux 中统计目录/文件数量

    1.查询目录/文件的数量(包括子目录下的文件) [root@small king]# ls -lR|grep "^-"|wc -l 4 注:R代表子目录."^d" ...

  3. 面向对象this关键字的内存图解

    this:哪个对象调用方法,this就代表哪个对象 案例1: //定义老师类 class Teacher { private String name; private int age; public ...

  4. C语言 - C语言简介

    一.C语言的发展史 C语言的发展离不开B语言,我们先从B语言说起.在1970年时,贝尔实验室的肯.汤姆逊将BCPL语言进行修改,由于肯.汤姆逊是从BCPL语言进行修改,因此,此时B语言就诞生了,B的含 ...

  5. HDU 1312 Red and Black(bfs,dfs均可,个人倾向bfs)

    题目代号:HDU 1312 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312 Red and Black Time Limit: 2000/100 ...

  6. MariaDB(Mysql)-主从搭建

    卸载过程: 停止服务:systemctl stop mariadb 查询安装包:rpm -qa | grep mariadb 卸载: rpm -e mariadb-server rpm -e mari ...

  7. Harmonic Number (II)

    Harmonic Number (II)   PDF (English) Statistics Forum Time Limit: 3 second(s) Memory Limit: 32 MB I ...

  8. [UPC10525]:Dove打扑克(暴力+模拟)

    题目描述 $Dove$和$Cicada$是好朋友,他们经常在一起打扑克来消遣时光,但是他们打的扑克有不同的玩法. 最开始时,牌桌上会有$n$个牌堆,每个牌堆有且仅有一张牌,第$i$个牌堆里里里那个扑克 ...

  9. excel里面匹配部分字符的问题

                如上图所示,有两个表,前者存的是区号电话号连起来的电话号,后者存的是世界各地的区号,怎么把第一个表里分成两列,一列单独存区号,一列单独存电话号. ps:电话号码长度和区号长度都 ...

  10. XAMPP 1.8.2-2 Apache Web Server won't start, always stops immediately

    sudo apachectl stop apachectl是Apache超文本传输协议服务器的前端程序. 其设计意图是帮助管理员控制Apachehttpd后台的功能. MacOS中安装完Apache之 ...