• ベストアンサー

JavaでMACアドレスを取得して加工したい!

JavaでMACアドレスを取得して加工したい! 見出しの通りなのですが JavaでMACアドレスを取得して それをString型の配列に代入して色々加工したいのですが なかなか上手くいきません。 取得して代入からうまくいってません・・・ 初心者なのでわかりやすく教えていただけるとありがたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • mintia007
  • ベストアンサー率59% (16/27)
回答No.4

import java.net.NetworkInterface; import java.util.Enumeration; public class GetMacAdr{ public static void main(String args[]) throws Exception{ String nicaddr = ""; // このマシン上のネットワークインタフェースをnicに格納 Enumeration<NetworkInterface> nic = NetworkInterface.getNetworkInterfaces(); while( nic.hasMoreElements() ) { NetworkInterface n = nic.nextElement(); //インタフェース名を表示 System.out.print( n.getName() + " : " ); //MACアドレスをbyte[]で取得 byte[] addressByte = n.getHardwareAddress(); // 取得したMACアドレスをStringへ変換 if( addressByte != null ){ for( byte b : addressByte ){ nicaddr = nicaddr + String.format( "%02X", b); } } // Stringクラスのnicaddrを表示 System.out.println( nicaddr ); nicaddr = ""; } } } API見て分かるように、JDK6でないと出来ません。更にLinuxならroot権限で実行する必要あります。 あと、これは自PCのMACアドレスに対してですよ。他のPCのMACアドレス取得はできません。他のPCのMACアドレスを取得したい場合、jpcapを使う手があります。

hotwater69
質問者

お礼

自PCのMACアドレスをちょっと論理演算したりしたかったのです! ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

回答No.3
hotwater69
質問者

補足

import java.net.NetworkInterface; import java.util.Enumeration; public class Macget{ public static void main(String args[]) throws Exception{ String nicaddr = "0"; // このマシン上のネットワークインタフェースをnicに格納 Enumeration<NetworkInterface> nic = NetworkInterface.getNetworkInterfaces(); while( nic.hasMoreElements() ) { NetworkInterface n = nic.nextElement(); //インタフェース名を表示 System.out.print( n.getName() + " : " ); //MACアドレスをbyte[]で取得 byte[] addressByte = n.getHardwareAddress(); //以下,整形と表示処理 if( addressByte != null ){ int bytenum = addressByte.length; for(int i=0; i<bytenum; i++){ String printAddress; int addressInt = 0x0FF & addressByte[i]; if( addressInt < 10 ){ printAddress = "0" + Integer.toString(addressInt); }else{ printAddress = Integer.toHexString(addressInt); } nicaddr = "0" + Integer.toString(addressInt); System.out.print( printAddress); } } System.out.println(); } } } こういうサンプルがあったので参考にしているんですが ここで出したMACアドレスをString型などの変数に 入れて生きたいのですが可能ですかね?

全文を見る
すると、全ての回答が全文表示されます。
  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.2

JavaにはMACアドレスを取得するAPIはないわ。 外部コマンドの力を借りないとダメ。 http://www.hellohiro.com/command.htm この辺を参考にするといいわ。

hotwater69
質問者

補足

外部コマンドですか・・・ リナックスで使おうと思ってるんですが 使えるんですかね?

全文を見る
すると、全ての回答が全文表示されます。
  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

取得はできたのね? 取得できてしまえばあとは文字列の加工だけだと思うけど。 うまくいかないとはどううまくいかないのかしら。

hotwater69
質問者

補足

わかりづらくてすいません・・・ 取得も出来ていないんです。 その後String型に代入したいのです! お解りならば教えてください。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • MACアドレス

    タイトル通り、MACアドレスを取得したいので、取得の仕方を教えてください。 いろいろと調べてみましたが、結局わかりませんでした。 プログラムを作動させているパソコンのMACアドレスが分かればいいです。 よろしくお願いします。 2005.NETで作成しています。

  • クライアントソケットMACアドレスの取得方法

    こんにちは。 現在、Java製の簡易的なアプリケーションサーバを作成しています。 サーバソケットをオープンして要求を受け、 何らかの処理を行って応答を返すことは出来ていますが、 アクセスに対してフィルタリングを行う要望が非常に高くなっています。 それも、IPアドレスなら簡単なのですが、 MACアドレスによるフィルタリングも要件に入って来ており、 このMACアドレスの取得方法が見つかりません。 ソケット中には必ずクライアントソケット側のMACアドレスも 存在していると思うのですが、 Javaでそれを取得するAPIが無い?のは不思議です。 クライアントのMACアドレスの取得方法は存在するのでしょうか? 存在するのでしたらどうかご教授をお願い致します。 どうぞよろしくお願い致します。

    • ベストアンサー
    • Java
  • .netでMACアドレスを取得

    System.Net.NetworkInformationの NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces(); をつかって、MACアドレスを取得しているのですが、CMDのipconfigと比べると明らかに取得数がすくなく、どうやら、取得した時点で使用しているMACアドレスしか取得できていないことがわかりました。 あと、ipconfigだと、ブルートゥースのアドレスなども取得していました。 .netの機能で、ipconfingと同じように、そのPCのすべてのMACアドレスを取得したいのですが、方法はないのでしょうか?CMDから取得する方法を現在はとっているのですが、遅すぎて困っています。 環境はVS2010のC#です。

  • Macアドレスを取得するには

    ユーザを認証するページを作っているのですが、認証してくるクライアントのMACアドレスをどうしても取得したいのですが、どうしたらいいのでしょうか?

  • Macアドレスを取得するには

    ローカルエリア内でユーザを認証するページを作っているのですが、認証してくるクライアントのMACアドレスをどうしても取得したいのですが、どうしたらいいのでしょうか?

  • MACアドレス取得が上手くいかない

    getiftable関数を使用してMACアドレスを取得しようと思っているのですが、ipconfigで確認したMACアドレスとは違う値が返ってきて困っています。 ちなみにXPで作成したプログラムを動かすと正しいアドレスが返ってくるのですが、7で動かした場合に違う値が返ってきます。 ネットで同様の事例が無いか探しているのですが中々発見できず、質問に至った次第です。 OSの違いで何か不具合が起こったりしているのでしょうか、分かる方至急回答の方を宜しくお願いします。

  • macアドレスについて

    はじめまして。 ifconfigやdmesgを使うと、NICのMACアドレスが表示できます。 現在、MACアドレスを取得するプログラムを作成したいのですが、ifconfigやdmesgはどこを参照してMACアドレスを取得しているのでしょうか?

  • MACアドレスを取得する方法はありますか?

    クライアントのMACアドレスを取得する方法はありますか? ご存知の方見えましたら教えてください。

  • MACアドレスを再取得(変更)したいです。

    こんばんは(#^.^#) 本日、iPod touch を購入しましてwi-fiでネット接続しました。 すると「天気」や「地図」での位置情報が昨年12月まで住んでいた福島県内をピンポイントで指しました。 調べてみると、ルーターのMACアドレスから位置情報を取得しているようですが、 引っ越しをしてもルーターの中にMACアドレス情報が残っており、それが原因のようです。 このMACアドレスを取得し直す方法があれば教えてもらいたいのです。 ちなみに、引っ越しの際に電源を2日間抜いていましたが、クリアされていなかったようです。 宜しくお願いします。

  • MACアドレスに関して

    MACアドレスとは、どこから取得しているものなんですか?ネットワークカードから個別に取得しているのか?マザーから取得しているのか分かりません。例えばあるPCに有線用のLANボードを搭載していて、無線LANカードもささっていて、USBの無線LANアダプタもさしてあったら、MACアドレスは個別に取得されることになるのですか?教えてください。