MACアドレス

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
SHIN

MACアドレス

#1

投稿記事 by SHIN » 8年前

eclipseでインターネットにあるMACアドレスを取得するプログラムをコピペしました。

それでMACアドレスが正常に取得されているかどうかはどこでわかるのでしょうか?
ソースコードを貼り付けさせて頂きます。(C言語で御座います。)

コード:

 
#include <stdio.h>
#include <string.h>
#include <ifaddrs.h>
#include <sys/socket.h>
#include <net/if.h>
#include <net/if_dl.h>
#include <net/if_types.h>

int main()
{
struct ifaddrs *ifa_list, *ifa;
struct sockaddr_dl *dl;
char name[12];
unsigned char *addr;
if (getifaddrs(&ifa_list) < 0) {
return 1;
}
for (ifa = ifa_list; ifa != NULL; ifa = ifa->ifa_next) {
dl = (struct sockaddr_dl*)ifa->ifa_addr;
if (dl->sdl_family == AF_LINK && dl->sdl_type == IFT_ETHER) {
memcpy(name, dl->sdl_data, dl->sdl_nlen);
name[dl->sdl_nlen] = '\0';
addr = LLADDR(dl);
printf("%s: %02x:%02x:%02x:%02x:%02x:%02x\n",
name,
addr[0], addr[1], addr[2], addr[3], addr[4], addr[5]);
}
}
freeifaddrs(ifa_list);
return 0;
}
 

eclipseのコンソール画面には何も出ないので困っています。

非常に馬鹿ですがキーワードだけでも零してもらえると嬉しいです。(MacOSです)

あんどーなつ
記事: 171
登録日時: 8年前
連絡を取る:

Re: MACアドレス

#2

投稿記事 by あんどーなつ » 8年前

MACアドレスはNIC(Network Interface Card)の個体識別番号のことだから、
Windowsだとipconfigコマンドで調べます。MacOSは手元にないのですが、下記ページが参考になると思います。

http://www.computer-services.e.u-tokyo. ... acosx.html

---

このプログラムの25行目のprintfを見ると、16進2桁で6個数字が出てくるはずです。
しかし、私の環境ではnet/if_dl.hがありません、というビルドエラーがでてきました。
同じようなエラーが出ていませんか?

ビルドエラーが出る場合は、そのファイルを提供しているライブラリをダウンロードして、
eclipseの設定でそれを読み込ませるようにする必要があります。

参考までに、このソースコードがあったURLを教えてもらえますか?

SHIN

Re: MACアドレス

#3

投稿記事 by SHIN » 8年前

URLは
http://field-notes.hatenablog.jp/entry/ ... 1292467817
で御座います。

現在MACアドレスを検知して自分のMACアドレス以外の物が見つかったら弾く(繋がせない)プログラムを作っている最中なのですがeclipseでビルドした結果はコンソール画面に何も表示されないので(コンパイルエラーがないので)このソースを採用しているのですが何か検討違いだったらスミマセン。

セキュリティプログラムみたいな物を作ろうとしています。

イクリプスのコンソール画面に何か入力すれば良いのかなと思っているのですが見当違いだったらスミマセン。

あんどーなつ
記事: 171
登録日時: 8年前
連絡を取る:

Re: MACアドレス

#4

投稿記事 by あんどーなつ » 8年前

ソースコードの提供元にLinux版があったので、そちらを動作させることができました。
コンソールに何も入力しなくても、出力が出てくるようです。

eclipseというのは、eclipse-CDTのことですか?
GUIの操作だと思いますので、別の実行ファイルを参照していないか等、再度確認してみてください。

閉鎖

“C言語何でも質問掲示板” へ戻る