怎样通过Web方式获得对方的网卡MAC地址

怎样通过Web方式获得对方的网卡MAC地址,第1张

分类: 电脑/网络 >> 软件

问题描述:

我正在开发一个B/S版的营运系统,系统要求当用户通过浏览器登陆系统时,能得到用户电脑网卡的MAC地址,不知道如何能够实现

该系统是用VBNET写的一个ASPNET程序

解析:

<%

strIP = RequestServerVariables("REMOTE_ADDR")

strMac = GetMACAddress(strIP)

strHost = RequestServerVariables("REMOTE_HOST")

Function GetMACAddress(strIP)

Set = ServerCreateObject("wscriptneork")

Set sh = ServerCreateObject("wscriptshell")

shrun "%spec% /c nbtstat -A " & strIP & " > c:" & strIP & "txt",0,true

Set sh = nothing

Set fso = createobject("scriptingfilesystemobject")

Set ts = fsoopentextfile("c:" & strIP & "txt")

macaddress = null

Do While Not tsAtEndOfStream

data = ucase(trim(tsreadline))

If instr(data,"MAC ADDRESS") Then

macaddress = trim(split(data,"=")(1))

Exit Do

End If

loop

tsclose

Set ts = nothing

fsodeletefile "c:" & strIP & "txt"

Set fso = nothing

GetMACAddress = macaddress

End Function

%>

<HTML>

<HEAD>

<TITLE>Say Hello To the MAC MAN</TITLE>

</HEAD>

<BODY>

<%ResponseWrite("Your IP is : " & strIP & "<BR>" & vbcrlf)%>

<%ResponseWrite("Your MAC is : " & strMac & vbcrlf)%>

</BODY>

</HTML>

后记:此程序中需要USER_用户有C盘的写入权限,也可以将文中的“C:”改为有写权限的驱动器(或目录)也可。

/// <summary>

/// 判断是否是IP地址格式 0000

/// </summary>

/// <param name="str1">待判断的IP地址</param>

/// <returns>true or false</returns>

public static bool IsIPAddress(string str1)

{

if (str1 == null || str1 == stringEmpty || str1Length < 7 || str1Length > 15) return false;

string regformat = @"^\d{1,3}[\]\d{1,3}[\]\d{1,3}[\]\d{1,3}$";

Regex regex = new Regex(regformat, RegexOptionsIgnoreCase);

return regexIsMatch(str1);

}

/// <summary>

/// 取得客户端真实IP。如果有代理则取第一个非内网地址

/// </summary>

public static string IPAddress

{

get

{

string result = StringEmpty;

result = >

复制代码 代码示例:private void ButtonIP_Click(object sender, SystemEventArgs e){ SystemNetIPAddress[] addressList = DnsGetHostByName(DnsGetHostName())AddressList;if ( addressListLength>1){ TextLIPText = addressList[0]ToString();TextSIPText = addressList[1]ToString();}else{TextLIPText = addressList[0]ToString();TextSIPText = "没有可用的连接";}}另一种获取服务器的IP地址与MAC地址的方法:复制代码 代码示例:using SystemManagement;string stringMAC = "";string stringIP = "";ManagementClass MC = new ManagementClass "Win32_NetworkAdapterConfiguration");ManagementObjectCollection MOC= MCGetInstances();foreach(ManagementObject MO in MOC){if ((bool)MO["IPEnabled"] == true){stringMAC += MO["MACAddress"]ToString();TextMACText = stringMACToString();string[] IPAddresses = (string[]) MO["IPAddress"];if(IPAddressesLength > 0)stringIP = IPAddresses[0];TextIPText = stringIPToString();}}获取客户端本机的IP地址的方法:复制代码 代码示例:using SystemNet;TextIPText=PageRequestUserHostAddress;获取客户端本机的MAC地址刚复杂一些,需要调用两个API,用ARP协议获取,但也只能获取到同网段机器的MAC,对于跨网段的得利用IP扫描或cmd中nBTstat命令获取MAC地址。

单播的MAC地址是通过ARP协议桢查询出来并缓存于ARP表中的,多(组)播的MAC地址是通过32位IP地址直接映射成48位MAC地址而得来的(会存在5位的映射偏差),而广播的MAC地址直接是48位全1。

80211桢和Ev2桢中的MAC地址产生方法是一致的,只不过在基础设施型无线网络中多了48位的BSSID地址(从而使得80211桢中的地址个数最多可达到4个),它是AP的无线接口MAC地址,无线工作站(STA)可以通过扫描AP定期(一般每秒10次以上)广播发送的信标桢(Beacon)来了解AP的MAC地址(注:无线产品禁用SSID广播并不是定期不发信标桢,而只是在信标桢中不再包含用户自定义的SSID网络名称),当然STA也可以通过主动扫描形式的广播探查请求桢(Probe Request)去获取AP的MAC地址(此时AP会先查看SSID名称是否匹配,并且MAC过滤表中是否允许连接,过滤后会用单播响应桢予以回复)。

不知我写的是否是你想要的,目前也在做无线的项目,碰巧遇见这个就回了,水平有限,希望能帮到你。

以上就是关于怎样通过Web方式获得对方的网卡MAC地址全部的内容,包括:怎样通过Web方式获得对方的网卡MAC地址、C#如何获取远程主机的的IP及MAC地址、asp.net如何获取服务器ip与mac地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9654989.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存