- 題名: MACアドレス取得の方法
- 日時: 2003/08/13 3:11:36
- ID: 319
- この記事の返信元:
- (なし)
- この記事への返信:
- [327] Re[1]: MACアドレス取得の方法2003/08/14 20:45:16
- [329] Re[1]: MACアドレス取得の方法2003/08/15 3:05:53
- ツリーを表示
> さて、『MACアドレス』をどうしても取得したのですが、
iphlpapi.dllのSendARPを使えば取れるようですが(w2k-proで確認)、
このdllの出所が謎っぽいところが、いけてないです。
※他にスマートな方法があるかも。
※ローカルだけでいいなら、"ipconfig /all"
をリダイレクトしてテキスト解析するというスマートでない手もある。
Declare Auto Function SendARP Lib "iphlpapi.dll" ( _
ByVal DestIP As Integer, ByVal SrcIP As Integer, _
ByVal pMacAddr As Byte(), ByRef PhyAddrLen As Integer _
) As Integer
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Label1.Text = GetPhysicalAddress(IPAddress.Parse(TextBox1.Text))
'ex. TextBox1.Text = "10.10.1.1"
End Sub
'--------+---------+---------+---------*---------+---------+---------+--
'IPアドレスからMacアドレスを取得 "00-00-00-00-00-00"
'--------+---------+---------+---------*---------+---------+---------+--
Private Shared Function GetPhysicalAddress( _
ByVal targetIP As IPAddress) As String
Const NO_ERROR% = 0
Dim macAddr(5) As Byte
Dim macSize As Integer = macAddr.Length
Dim apiret As Integer = SendARP(targetIP.Address, 0, macAddr, macSize)
If SendARP(targetIP.Address, 0, macAddr, macSize) <> NO_ERROR Then
Return "Error or Unknown"
End If
Dim ret As String
Dim b As Byte
For Each b In macAddr
ret += "-" & Hex(b).PadLeft(2, "0"c)
Next
Return ret.Substring(1)
End Function
ここに来ると、VB.NETの情報が盛りだくさんでいつも助かってます。
最近仕事の都合でVB.NETを使用することになったのですが、
VB自体が始めてなもんで、日々勉強です。
さて、『MACアドレス』をどうしても取得したのですが、
コイツをどうやって取得したらいいものか・・・
どなたか教えてくださいますでしょうか。
よろしくお願いします。