![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
こんにちは、
Macアドレスの取得方法で悩んでいます。
現在NetBiosを使った方法で取得する方法までは出来たのですが、ネットワークに接続していない環境も想定しているため、ネットワークカードが稼動していない場合取得が出来ないようです。色々調べて見ましたがこの方法しか見つかりませんでした。
どなたか、ネットワークに接続されていない(LANケーブルがつながっていない)PCのMacアドレスの取得方法をご存知の方いらしましたら、ご教授願います。
//NetBiosを使った取得のソースコードを以下に示します。
#include "stdafx.h"
#include "Nb30.h"
typedef struct _ASTAT_
{
ADAPTER_STATUS adapt;
NAME_BUFFER NameBuff[30];
}ASTAT, * PASTAT;
ASTAT Adapter;
bool GetMacAddress(char* pMacAddress)
{
NCB Ncb;
UCHAR uRetCode;
// reset
memset( &Ncb, 0, sizeof(Ncb) );
Ncb.ncb_command = NCBRESET;
Ncb.ncb_lana_num = 0;
uRetCode = Netbios( &Ncb );
// get
memset( &Ncb, 0, sizeof (Ncb) );
Ncb.ncb_command = NCBASTAT;
Ncb.ncb_lana_num = 0;
strcpy( (char*)Ncb.ncb_callname, "*" );
Ncb.ncb_buffer = (UCHAR*)&Adapter;
Ncb.ncb_length = sizeof(Adapter);
uRetCode = Netbios( &Ncb );
if ( uRetCode == 0 )
{
char strBuffer[12];
sprintf(strBuffer, "%02x%02x%02x%02x%02x%02x",
Adapter.adapt.adapter_address[0],
Adapter.adapt.adapter_address[1],
Adapter.adapt.adapter_address[2],
Adapter.adapt.adapter_address[3],
Adapter.adapt.adapter_address[4],
Adapter.adapt.adapter_address[5] );
strcpy(pMacAddress, strBuffer);
return true;
}
return false;
}
No.1ベストアンサー
- 回答日時:
自分では試してないので自信なしですが、
このあたり↓が参考になるかも(?)知れません。
http://www003.upp.so-net.ne.jp/geek/programming/ …
参考URL:http://www003.upp.so-net.ne.jp/geek/programming/ …
この回答への補足
z64423さんの方法で試した結果うまくいきました。ありがとうございました。PlatFormSDKは使ったことが無かったので、インストールするのに手間取りましたが何とか目的の動作を得ることが出来ました。WIN98以降対応のようですので欲を言えば98よりまえの環境ではどうすればいいのかなあと言うところが気になっています。
補足日時:2005/04/18 11:53No.2
- 回答日時:
蛇足ながら、補足に対して。
> WIN98以降対応のようですので欲を言えば98より
> まえの環境ではどうすればいいのかなあと言うところが
> 気になっています。
Win98より前の環境、というのは、マイクロソフトのサポート外になってしまうので、昔のWin32 SDKなどを探すしかないです。また、昔のWin32SDKはマイクロソフトは絶対に配布してくれませんので、既に持ってる人からもらうしかないです。(なお、再配布は不許可だったはずなので、これまた違法です。)
ということなので、昔の環境は無視して結構かと思います。
ご回答、ありがとうございます。そうですか、マクロソフトのサポート外ですか。Win32SDKはもしかしたらあるかもしれないので、時間を作って探してみます。現在のプロジェクトではwin95,winNt4.0は考慮しなくてよいという上司の判断が下されましたので、とりあえず、現状で進めていこうと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 インストールしたてのVirtualBoxの仮想マシンにDHCPで割り振られるIPアドレスにつきまして 1 2023/05/03 14:46
- Wi-Fi・無線LAN パソコンのWireless LAN adapterで、Wi-Fiと、ローカル エリア接続 3 2022/04/21 10:43
- UNIX・Linux ホストオンリーアダプタで接続したい 1 2022/08/10 21:46
- デスクトップパソコン 古ーいパソコン/Atheros AR2181 PCIe Gigabit LAN コントローラー 7 2022/09/07 12:58
- VPN VPN Client Adapter を削除する方法を教えて下さい。 1 2023/08/20 01:49
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- プリンタ・スキャナー Brother® HL-L3290CDW Wireless Printer 接続 3 2022/07/24 10:47
- 英語 下記の英文を日本語に訳して、その意味を教えてください。 1 2023/03/09 14:13
- 英語 下記の英文の日本語訳をお願いします。 1 2023/03/02 10:01
- ネットワーク IPアドレスの範囲ってどうやって求めるんですか? 2 2023/01/05 01:37
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「取得先」という表現について
-
【VBA】EXCELブックを開かずに...
-
【C#】FindWindowExの使い方を...
-
VBS「開いているページ」のURL...
-
ps3で久しぶりにCDの音楽情報取...
-
VBAでPDFのアクティブページ番...
-
VBAでキーワード検索
-
IEを使わないでhtmlテキストを...
-
VBAでPDFファイルの文書のプロ...
-
EXCEL、マクロ-改ページ行番号...
-
vb6で、特定のフォルダを常時監...
-
PHPでテキストファイルの行数を...
-
IPアドレス変更方法
-
VB6でCPU情報の取得
-
文字列データからある部分のみ...
-
[C#]htmlを取得できないページ...
-
format関数について
-
Winsock(またはWinInet)でグ...
-
ThreadのHandleの取得方法を教...
-
任意の行のselect
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「取得先」という表現について
-
Yahoo! JAPAN IDを新規取得でき...
-
ps3で久しぶりにCDの音楽情報取...
-
自分の掲示板にアクセス解析を...
-
DMMの動画を全件取得したのです...
-
IEを使わないでhtmlテキストを...
-
IPアドレスとMACアドレスを取得...
-
ミュージックのアートワークを...
-
【VBA】EXCELブックを開かずに...
-
format関数について
-
ローカルのコンピュータ名を取...
-
不正競争防止法に該当するので...
-
【C#】FindWindowExの使い方を...
-
アクセスの度にIPアドレスを変...
-
EXCEL、マクロ-改ページ行番号...
-
Excel VBA:特定の文字列以降(...
-
VBAでPDFのアクティブページ番...
-
VB2005でXMLデータから複数ある...
-
VBAでPDFファイルの文書のプロ...
-
perl LWPでURLにアクセスした時...
おすすめ情報