線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2543
推到 Plurk!
推到 Facebook!

請問如何用 IP 取得 MAC Address ? (Delphi 2009)

 
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-05-05 16:01:17 IP:61.220.xxx.xxx 訂閱
  請問如何用 IP 取得 MAC Address ? (Delphi 2009)


[code delphi]
// Delphi 7 ( Delphi 2009 失敗)
//
// 用 IP 取得 MAC
// uses 要有 WinSock

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, winsock, StdCtrls; // 要有 WinSock

type
TForm1 = class(TForm)
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation
{$R *.dfm}
function SendARP(Destip,scrip:DWORD;pmacaddr:PDWORD;VAR phyAddrlen:DWORD):DWORD; stdcall ;external 'iphlpapi.dll' ;
function GetMacFromIP(IP: String): String;
type
Tinfo = array[0..7] of byte;
var
dwTargetIP: dword;
dwMacAddress: array[0..1] of DWORD;
dwMacLen: DWORD;
dwResult: DWORD;
X: Tinfo;
stemp:string;
iloop:integer;
begin
dwTargetIP := Inet_Addr(pchar(ip));
dwMacLen:= 6;
dwResult:= sendarp(dwtargetip,0,@dwmacaddress[0], dwMaclen);
if dwResult= NO_ERROR then
begin
x:= tinfo(dwMacAddress);

for iloop:= 0 to 5 do
begin
stemp:= stemp inttohex(x[iloop],2);
end;
Result:= stemp;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Lines.Add(GetMacFromIP('192.168.128.1'));
end;

end.

[/code]
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
編輯記錄
pcboy 重新編輯於 2009-05-06 07:30:51, 註解 無‧
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-05-05 16:48:33 IP:61.220.xxx.xxx 訂閱
解決了

dwTargetIP := Inet_Addr(pchar(ip)); // Delphi 7 only

改為

dwTargetIP := Inet_Addr(PAnsiChar(AnsiString(ip))); // Delphi 7, Delphi 2009
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
系統時間:2024-04-27 9:48:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!