掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
不要なMACアドレスを取得しない為には? (ID:2614)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
お世話になります。 素人くさい質問で申し訳ありません。 以下のコードで、プログラム的には正常動作するように なりました。はて、各項目の取得値の意味が飲みこめません。 MACアドレスは、どこに表示されるのでしょう。 ご教授宜しくお願いします。 AddressLength: LongInt; Address: array[0..MAX_ADAPTER_ADDRESS_LENGTH - 1] of Byte; のところだと思いますが、HEX値に変換してもAddCheckerというツール で、取得した値と違うので、悩んでおります。 以下、コードです。 unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,AdaptInfo; type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; Memo1: TMemo; procedure Button1Click(Sender: TObject); private { Private 宣言 } public { Public 宣言 } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); var AdapterMem:PIPAdapterInfo; lngRes:LongInt; lngLen:integer; i:integer; STR:string; begin lngRes := GetAdaptersInfo(nil, @lngLen); Edit1.Text:=IntToStr(lngRes); // 戻り値lngResでエラーチェック // ERROR_BUFFER_OVERFLOWだったらメモリを確保 AdapterMem := GetMemory(lngLen); try lngRes := GetAdaptersInfo(AdapterMem, @lngLen); //Edit1.Text:=IntToStr(lngRes); Memo1.Lines.Clear; Memo1.Lines.Add('Next: '+IntToStr(AdapterMem.Next)); Memo1.Lines.Add('ComboIndex: '+IntToStr(AdapterMem.ComboIndex)); Memo1.Lines.Add('AdapterName: '+AdapterMem.AdapterName); Memo1.Lines.Add('Description: '+AdapterMem.Description); Memo1.Lines.Add('AddressLength: '+IntToStr(AdapterMem.AddressLength)); STR:=''; for i:=0 to 7 do STR:=STR+IntToStr(AdapterMem.Address[i])+' '; Memo1.Lines.Add('Address: '+STR); { STR:=''; for i:=0 to 7 do STR:=STR+IntToHex(AdapterMem.Address[i],2)+' '; Memo1.Lines.Add('Address: '+STR); } Memo1.Lines.Add('Index: '+IntToStr(AdapterMem.Index)); Memo1.Lines.Add('lngType: '+IntToStr(AdapterMem.lngType)); Memo1.Lines.Add('DhcpEnabled: '+IntToStr(AdapterMem.DhcpEnabled)); Memo1.Lines.Add('CurrentIpAddress: '+IntToStr(AdapterMem.CurrentIpAddress)); //IpAddressList Memo1.Lines.Add('IpAddressList.Next: '+IntToStr(AdapterMem.IpAddressList.Next)); STR:=''; for i:=0 to 15 do STR:=STR+IntToStr(AdapterMem.IpAddressList.IpAddress.IpAddressString[i])+' '; Memo1.Lines.Add('IpAddressList.IpAddress.IpAddressString: '+STR); STR:=''; for i:=0 to 15 do STR:=STR+IntToStr(AdapterMem.IpAddressList.IpMask.IpMaskString[i])+' '; Memo1.Lines.Add('IpAddressList.IpMask.IpMaskString: '+STR); Memo1.Lines.Add('IpAddressList.Context: '+IntToStr(AdapterMem.IpAddressList.Context)); //GatewayList Memo1.Lines.Add('GatewayList.Next: '+IntToStr(AdapterMem.GatewayList.Next)); STR:=''; for i:=0 to 15 do STR:=STR+IntToStr(AdapterMem.GatewayList.IpAddress.IpAddressString[i])+' '; Memo1.Lines.Add('GatewayList.IpAddress.IpAddressString: '+STR); STR:=''; for i:=0 to 15 do STR:=STR+IntToStr(AdapterMem.GatewayList.IpMask.IpMaskString[i])+' '; Memo1.Lines.Add('GatewayList.IpMask.IpMaskString: '+STR); Memo1.Lines.Add('GatewayList.Context: '+IntToStr(AdapterMem.GatewayList.Context)); //DhcpServer Memo1.Lines.Add('DhcpServer.Next: '+IntToStr(AdapterMem.DhcpServer.Next)); STR:=''; for i:=0 to 15 do STR:=STR+IntToStr(AdapterMem.DhcpServer.IpAddress.IpAddressString[i])+' '; Memo1.Lines.Add('DhcpServer.IpAddress.IpAddressString: '+STR); STR:=''; for i:=0 to 15 do STR:=STR+IntToStr(AdapterMem.DhcpServer.IpMask.IpMaskString[i])+' '; Memo1.Lines.Add('DhcpServer.IpMask.IpMaskString: '+STR); Memo1.Lines.Add('DhcpServer.Context: '+IntToStr(AdapterMem.DhcpServer.Context)); // Memo1.Lines.Add('HaveWins: '+IntToStr(AdapterMem.HaveWins)); //PrimaryWinsServer Memo1.Lines.Add('PrimaryWinsServer.Next: '+IntToStr(AdapterMem.PrimaryWinsServer.Next)); STR:=''; for i:=0 to 15 do STR:=STR+IntToStr(AdapterMem.PrimaryWinsServer.IpAddress.IpAddressString[i])+' '; Memo1.Lines.Add('PrimaryWinsServer.IpAddress.IpAddressString: '+STR); STR:=''; for i:=0 to 15 do STR:=STR+IntToStr(AdapterMem.PrimaryWinsServer.IpMask.IpMaskString[i])+' '; Memo1.Lines.Add('PrimaryWinsServer.IpMask.IpMaskString: '+STR); Memo1.Lines.Add('PrimaryWinsServer.Context: '+IntToStr(AdapterMem.PrimaryWinsServer.Context)); //SecondaryWinsServer Memo1.Lines.Add('SecondaryWinsServer.Next: '+IntToStr(AdapterMem.SecondaryWinsServer.Next)); STR:=''; for i:=0 to 15 do STR:=STR+IntToStr(AdapterMem.SecondaryWinsServer.IpAddress.IpAddressString[i])+' '; Memo1.Lines.Add('SecondaryWinsServer.IpAddress.IpAddressString: '+STR); STR:=''; for i:=0 to 15 do STR:=STR+IntToStr(AdapterMem.SecondaryWinsServer.IpMask.IpMaskString[i])+' '; Memo1.Lines.Add('SecondaryWinsServer.IpMask.IpMaskString: '+STR); Memo1.Lines.Add('SecondaryWinsServer.Context: '+IntToStr(AdapterMem.SecondaryWinsServer.Context)); // Memo1.Lines.Add('LeaseObtained: '+IntToStr(AdapterMem.LeaseObtained)); Memo1.Lines.Add('LeaseExpires: '+IntToStr(AdapterMem.LeaseExpires)); except ShowMessage('Error'); end; end; end.
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.