如何根据对方IP地址来获取对方的MAC地址??? 高分求教呀!(100分)

  • 主题发起人 主题发起人 yuanyoufa
  • 开始时间 开始时间
Y

yuanyoufa

Unregistered / Unconfirmed
GUEST, unregistred user!
如题,对方的绑定IP和MAC地址的!!!
 
IP和MAC没有关系
只有运行在本机的程序才可以查看本机网卡的MAC地址
 
我刚才试了这个代码 能实现获取对方MAC地址吗?(internet)


procedure TForm1.Button1Click(Sender: TObject);
begin
label1.Caption:=GetMacByIP(edit1.Text) ;
end;

//下面的是我在论坛上找的代码:
function Tform1.GetMacByIP(const IPAddress: String): String;
const
IPHLPAPI = 'IPHLPAPI.DLL';
type
ipAddr = LongInt;
puLong = ^u_Long;
var
DestIP: Integer;
pMacAddr: puLong;
AddrLen: u_Long;
MacAddr: array [1..6] of Byte;
p: PByte;
s: String;
i: Integer;
IPStr: String;
hMod: hModule;

SendARP: function(DestIP: ipAddr; SrcIP: ipAddr; pMacAddr: puLong;
PhyAddrLen: puLong): DWORD; stdcall;
begin
Result:='';

hMod:=LoadLibrary(IPHLPAPI);
if hMod=0 then
Exit;
@SendARP:=GetProcAddress(hMod,'SendARP');
if not Assigned(SendARP) then
Exit;

try
IPStr:=IPAddress;
DestIP:=iNet_Addr(PChar(IPStr));
pMacAddr:=puLong(@MacAddr);
AddrLen:=SizeOf(MacAddr);
if SendARP(DestIP,0,pMacAddr,@AddrLen)=0 then
begin
s:='';
p:=PByte(pMacAddr);
if (p<>nil) and (AddrLen>0) then
begin
for i:=1 to AddrLen do
begin
s:=s+IntToHex(p^,2);
p:=Pointer(Integer(p)+SizeOf(Byte));
end;
SetLength(s,12);
end;
end;
Result:=s;
finally
FreeLibrary(hMod);
end;
end;

end.
 
晕,你的声明是函数属于tform1的,但是实际函数是全局的

function Tform1.GetMacByIP(const IPAddress: String): String;

现在的程序员怎么连基本错误都看不懂了? 是我落后了,还是现在的都不看错误了?

这个函数局域网确实是可行的,internet上没试过
 
非局域网不可能直接查询的。
 
不好意思,我忘记了TForm1了 呵呵
 
各位,我现在想做个很简单的浏览器,想实现的 功能是:
第一:获取对方的实时IP地址?(这个用什么函数??)
第二:在用我上面的程序来解析它的MAC地址!(我想在internet上使用)能实现吗????
 
第二:在用我上面的程序来解析它的MAC地址!(我想在internet上使用)能实现吗????
可以明确的给你说,不行。
原因:在网络传输中的确IP数据包中有MAC地址一项。但是此项属于变动的。每过一个路由此值都会发生改变。所以你不可能得到INTERNET上某个网站的MAC地址!
 
哎,实在没有办法了吗?
那我做个ActiveX控件,然后把它嵌到ASP网页中,用户浏览网页时自动下载到用户电脑中安装,然后在利用这个ActiveX来获取这个IP地址的MACD地址,然后在和服务器的数据库查找有没有这个MAC地址,找到则打开,如果没有找到则关闭,
各位我这种思想能行吗??????

我一点也不懂ActiveX控件!!!!
 
做软件象你这样的太多了吧,闲着没事就往人家机器里下activeX安装
 
可以做一个自动下载到本地的dll,然后在dll实现函数,再用asp代码从dll里运行函数,这样比activex简单吧,但是要是ie设置不让自动下载文件就麻烦了,哈
 
to xygz
我又不是下载木马用的,我是公司想把每台机器内部网使用的这个MAC人证的东西呀!!
to 诸葛白痴
有没有这方面的小例子,给我参考一下呀!
 
果然人如其名

白吃就是白吃

还自动下载到本地
你用asp代码运行客户端的dll给我看看


就用ocx可以了,直接打包让客户端下载安装
 
to qdlover,
我明白了,有没有这方面的小例子阿?
发给我研究一下呀

afa1981128@163.com
 
呵呵,得教,俺还真不懂asp不能运行本地的dll,我以为asp的vbscript可以呢,谢谢兄台指点
 
作了一个获取本地mac的ocx

自己下载吧

具体还要做什么功能就自己写吧

http://bbs.51cto.com/attachment.php?aid=4971
 
to qdlover,
我刚才下载了,也试下了,可是我测试时总三网页有错误,

我也看了你的HTML这个代码: mac.mac 有没有问题呢???

你在测试一下!
 
直接用优化大师就OK啦~有用过吗?
 
多人接受答案了。
 
后退
顶部