在.Net里面,有没有办法通过客户机MAC地址,对应的IP地址?高分求。
主机和客户机,位于同一个子网内。最好用C#实现。 问题点数:100、回复次数:10Top
1 楼IzualX(IzualX)回复于 2005-04-11 11:28:27 得分 0
题目没写好。
在.Net里面,有没有办法通过客户机MAC地址,获得对应的IP地址?高分求。Top
2 楼ffjing(猪头不卖)回复于 2005-04-11 11:39:31 得分 20
应该是通过ip地址获取网卡mac地址吧,
反过来就要扫描网段内所有ip及其mac地址,然后再匹配了。
前几天看到一个类似的问题,就想把原来vb下的代码翻译过来,
结果在执行一个api时抛出了一个异常,不知道如何解决,郁闷。
有谁有c#源代码,让偶也瞅一眼Top
3 楼IzualX(IzualX)回复于 2005-04-11 11:48:01 得分 0
反过来就要扫描网段内所有ip及其mac地址,然后再匹配了。
这个夸张了点八。局域网应该有直接MAC取得IP的方法,我记得那里看到过。Top
4 楼IzualX(IzualX)回复于 2005-04-11 11:48:53 得分 0
应该是通过ip地址获取网卡mac地址吧。我已经搞定了,要调用ip help api 这个dllTop
5 楼silverseven(广西编程民工)回复于 2005-04-11 11:52:29 得分 40
应该是通过ip地址获取网卡mac地址吧,
反过来就要扫描网段内所有ip及其mac地址,然后再匹配了。
前几天看到一个类似的问题,就想把原来vb下的代码翻译过来,
结果在执行一个api时抛出了一个异常,不知道如何解决,郁闷。
有谁有c#源代码,让偶也瞅一眼
应该是通过ip地址获取网卡mac地址吧,
反过来就要扫描网段内所有ip及其mac地址,然后再匹配了。
前几天看到一个类似的问题,就想把原来vb下的代码翻译过来,
结果在执行一个api时抛出了一个异常,不知道如何解决,郁闷。
有谁有c#源代码,让偶也瞅一眼
应该是通过ip地址获取网卡mac地址吧,
反过来就要扫描网段内所有ip及其mac地址,然后再匹配了。
前几天看到一个类似的问题,就想把原来vb下的代码翻译过来,
结果在执行一个api时抛出了一个异常,不知道如何解决,郁闷。
有谁有c#源代码,让偶也瞅一眼
应该是通过ip地址获取网卡mac地址吧,
反过来就要扫描网段内所有ip及其mac地址,然后再匹配了。
前几天看到一个类似的问题,就想把原来vb下的代码翻译过来,
结果在执行一个api时抛出了一个异常,不知道如何解决,郁闷。
有谁有c#源代码,让偶也瞅一眼
应该是通过ip地址获取网卡mac地址吧,
反过来就要扫描网段内所有ip及其mac地址,然后再匹配了。
前几天看到一个类似的问题,就想把原来vb下的代码翻译过来,
结果在执行一个api时抛出了一个异常,不知道如何解决,郁闷。
有谁有c#源代码,让偶也瞅一眼
Top
6 楼soulroom(易水之风)回复于 2005-04-11 12:21:54 得分 20
原来vb下的代码贴出来,我来翻译Top
7 楼lovinger2000(EUDEV.NET)回复于 2005-04-11 12:26:11 得分 20
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Runtime.InteropServices;
namespace EUDEV.NET.Web.Public
{
/// <summary>
/// MACAddress 的摘要说明。
/// </summary>
public class MACAddress
{
[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 MACAddress()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
//攻取客户端MAC地址
public static string GetMACAddress(string ipAddress)
{
string userip = ipAddress;
Int32 ldest= inet_addr(userip); //目的地的ip
Int32 lhost= inet_addr(""); //本地服务器的ip
Int64 macinfo = new Int64();
Int32 len = 6;
int res = SendARP(ldest,0, ref macinfo, ref len);
string mac_src = macinfo.ToString("X");
if(mac_src == "0") //本机地址
{
return "Localhost";
}
while(mac_src.Length<12)
{
mac_src = mac_src.Insert(0,"0");
}
string mac_dest = "";
for(int i=0;i<11;i++)
{
if(0==(i%2))
mac_dest = mac_dest.Insert(0,mac_src.Substring(i,2));
}
return mac_dest;
}
}
}
Top
8 楼lovinger2000(EUDEV.NET)回复于 2005-04-11 12:27:01 得分 0
代码如上,直接拿过去就可以用了Top
9 楼IzualX(IzualX)回复于 2005-04-11 12:35:08 得分 0
我靠,雷宇!!!Top
10 楼IzualX(IzualX)回复于 2005-04-11 12:36:12 得分 0
To lovinger2000(EUDEV.NET)
抱歉,我说的是通过MAC地址,获取对应的IP地址。Top




