平塚個人メディア
たかすけの平塚情報局

C#でMACアドレス取得

久々にプログラムでも組もうかと窓の杜を眺めていたら、

IPアドレスのダイアログ・コマンドライン入力でMACアドレス取得「MacLookup」


なるものを発見。

真似してつくってみました(真似だけじゃ寂しいので、メインネットワークカードのMACアドレスが初期表示されるようにした。すごいぜ!進化してる)

MacALookup
DLはコチラ ※C#で作ったので要.NetFramework2.0です

30分くらいでできちゃった・・・というか、このソフトの使い道が思いつかない・・・・まぁいいか。
ソースも公開しておきます(続きページで。)

うーむ。以前作った

ダイエット管理ソフト「腹八分」

は、4,5日かかってます。
こりゃ「窓の杜」に応募してみるかな。


■C#のTIPS

興味がない方ごめんなさい。プログラマの方は以下をどうぞ

・IPアドレスからMACアドレスを取得


[DllImport("iphlpapi.dll"(, ExactSpelling = true)]
public static extern int SendARP(UInt32 DestIP, UInt32 SrcIP, [Out] byte[] pMacAddr, ref int PhyAddrLen);

public void GetMacAddress(uint ipAddr)
{
  byte[] macAddr = new byte[6];
  int lenPhyAddr = 6;

  int hr = SendARP(ipAddr, 0, macAddr, ref lenPhyAddr);

  textBox1.Text = string.Format("{0,2:X}:{1,2:X}:{2,2:X}:{3,2:X}:{4,2:X}:{5,2:X}",
  macAddr[0], macAddr[1], macAddr[2], macAddr[3], macAddr[4], macAddr[5]);
}

・文字列をIPアドレスに変換


IPAddress ipAddr = IPAddress.Parse(textBox2.Text);
GetMacAddress((uint)ipAddr.Address);

・クリップボードにコピー

Clipboard.SetDataObject(textBox1.Text, true);

・ホスト名からIPアドレスを取得


IPHostEntry host = Dns.GetHostEntry(Dns.GetHostName());
IPAddress ipAddr = host.AddressList[0];
textBox2.Text = ipAddr.ToString();
GetMacAddress((uint)ipAddr.Address);


これで全部。
シンプルですね。



他にも興味深い記事がありますので、ぜひ [テーマ別] を覗いてみてください。


Posted by たかすけ at 2007年3月 3日 00:11 | コメント (2) | トラックバック (0)

この記事に対するコメント

ルーターの接続設定、ファイルサーバーの設定とかで、アクセス許可→Macアドレス指定とか設定するときに、ケース開けずに見れると便利だよね。

Posted by: へなちょこ at 2007年3月27日 12:43

へなちょこさん、こんにちわ

そうですねー。ケース開けずに見れるのが便利です。
ただ、DOS窓から

>ipconfig /all
と打っても確認が可能なのでわざわざツールにする必要があるのかは疑問だったりします(^^;

Posted by: たかすけ at 2007年4月 8日 00:49

コメントを投稿する




保存しますか?

(書式を変更するような一部のHTMLタグを使うことができます)


この記事のトラックバックURL


この記事に対するトラックバック

この記事に対するトラックバックはまだありません。



Powered by Movable Type 4.2-ja Powered by Wandering Wind
Copyright : [Articles] (C) たかすけの平塚情報局 All Rights Reserved.
[Comments/Trackbacks] ... Authors of those have rights.