• ベストアンサー

送信先MACアドレスを任意のものへ変更する方法

現在、大学院にて無線通信関連の研究開発を行っている修士2年生です。 実証実験のなかで、 「送信先MACアドレスに任意のアドレスを指定した802.11フレーム」 の送信が必要となりました。 このようなフレームの送信は、 JAVAなど一般的なプログラミング言語で実現可能でしょうか。 最終的にはAndroid端末から送信出来るようにしたいのですが、 実現の方法が分からず困っています。 どなたかご存知のかた居られましたら、ご教示ください。 また、情報の不足など有りましたらご指摘下さい。

  • Java
  • 回答数2
  • ありがとう数3

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

  • ベストアンサー
  • ninoue
  • ベストアンサー率52% (1288/2437)
回答No.2

通常はアプリケーションからはIP Addressを指定しての交信が行われるのですが、直接無線信号の送受信が可能な近くの装置間や装置とルーター間の交信をMAC Addressを指定して行いたいと言う事なのですね。 普通はデータリンク層にアプリケーションから直接アクセスする事はなく、このレベルはパッケージとして実装されているので、これらを調べてパッケージ内のサブルーチンを直接呼ぶ必要があると思われます。 以下の情報はご存知だと思いますが、自分の再確認の意味もあって少しサーチして見ました。 直接の回答にならずに雑多な情報ですが、参考になれば幸いです。 http://www.nec.co.jp/octpower/seminar/languide/01_003.html 1. LANの概要 http://www.oreilly.co.jp/books/4873113083/ 802.11無線ネットワーク管理 第2版 他にもLinuxやNetwork関連の書籍を大規模書店等で調べてみて下さい。 java application levelからはMAC Addressにはアクセス出来ないようです。 oracle java se7 document ==> http://docs.oracle.com/javase/7/docs/api/ java.net C, C++レベルからはアクセス出来る筈です。 Android端末のOSはLinuxを基にされており、Ubuntu, Android等のソースは公開されているようです。 Android アプリケーション開発環境がサポートされているので、MAC Address access routineも見つかるのではと思われます。 このあたりに関しては詳しくないので次等から辿って調べてみて下さい。 http://ja.wikipedia.org/wiki/Android LINUX source 等とサーチして調べて下さい。 "wireless LAN" OR 802.11 "MAC address" 等を組み合わせてサーチしてみて下さい。 或いはソースコードのサーチをサポートされているサイトで調べてみて下さい。 code search ==> https://code.ohloh.net/ https://code.ohloh.net/search?s=IEEE%20802.11%20MAC%20Address http://www.krugle.com/ http://opensearch.krugle.org/document/search/#language=C&query=%22MAC%20Address%22 Linux source download ==> http://d.hatena.ne.jp/nuttinutti/20120312/1331554891 ==> http://lxr.linux.no/ http://lxr.linux.no/+trees http://lxr.linux.no/#linux+v3.13.5/ ==>net http://en.wikipedia.org/wiki/Comparison_of_open-source_wireless_drivers ==> modes of operation: http://wireless.kernel.org/en/users/Documentation/modes http://wireless.kernel.org/en/users/Documentation/hostapd その他 ネットワークシミュレータが或は参考になるのではと思われますので次のようにサーチして調べてみて下さい。 NS2 network simulator

ryskiwt
質問者

お礼

Javaなど比較的高レベルな言語からは扱うのが難しいようですね。 Androidだと他にもパミッションの問題などもあり他の方法を採用しました。 回答ありがとうございました。

その他の回答 (1)

  • ninoue
  • ベストアンサー率52% (1288/2437)
回答No.1

MAC Addressを指定しての送受信はUDPにて可能です。 例えば次のようにサーチして調べてみて下さい。 Java UDP packet 送受信 ==> http://yuu7777.fc2web.com/javanet6/12.htm UDPの送受信プログラム例 Java Tutorial でもUDPやTCPの送受信については解説されています。 java tutorial UDP java tutorial TCP java tutorial packet transfer MAC Address 次のFree Bookでもかなり詳しく解説されていたと記憶していますので調べてみて下さい。 http://www.mindview.net/Books/TIJ/

ryskiwt
質問者

お礼

早速の返信ありがとうございます. 調べてみます.

ryskiwt
質問者

補足

ひとつ確認なのですが, 「IPアドレス」を指定しての送受信 ではなく, 「MACアドレス」を指定しての送受信 がUDPで可能ということで間違いないですか? 前者は簡単に情報が出てくるのですが, 後者はあまり出てこず困っています. もう少し調査を続けてみます.

関連するQ&A

  • 送信先IPアドレス取得方法について

    こんにちは。 VC++.NET2003とWinsockを利用しネットワークプログラミングの勉強を行っています。 以下のようなクライアント・サーバー型のプログラムを作った際、 ・クライアント側でサーバー(送信先)のIPアドレスとポート番号を指定。 ・サーバー側でポート番号を指定。 というふうに、クライアント側で(サーバー)送信先のIPアドレスを指定しています。 例えば・・・ [送信端末-C-受信端末]というように、 送信端末と受信端末との間にC端末をおき、C端末において送信端末で指定した受信端末のIPアドレスを取得することは可能でしょうか? 取得方法があれば教えて頂けないでしょうか。 よろしくお願いします。

  • JAVAはどんなプログラミング言語を用いて開発されたんですか?

    JAVAに関して質問があります。 (1)JAVAはどんなプログラミング言語を用いて開発されたんですか? (例えばC言語で作成されたとか) (2)JAVAで作られたプログラミング言語とかはありますか? (例を挙げるとRubyやHSPはC言語で書かれているとか、なでしこはDelphiで書かれているとかです。)

  • 化学とプログラミングとパソコン

    今大学1年生の者です。 1)将来化学の(特にナノサイズ)研究者または開発者になるとしたら、どのプログラミング言語が最も使う頻度が高いですか? 2)また研究者または開発者になる場合MacとWindowsどちらが適しているとおもいますか? 3)パソコンは一回買ったらその後十何年も使えるものですか? どれか一つでもいいのでアドバイスお願いします。

  • 無線LANで任意のパケットを作成し送信する方法について

    無線LANで任意のパケットを作成し送信する方法について linux(ubuntu)を使用しています。C言語を使い無線LANで、有線みたいにパケットを作成して目的のアドレス宛に送信したいと考えています。ですが、どのようにしたらよいのかよく分かりません。(IP、TCPヘッダーを作成できた様に無線LANでも同じことが出来るのですか?) プログラムの仕方等、どなたか分かる方教えていただけませんか? なにかそのようなことが載っているサイトや本はご存知ないですか? どうぞよろしくお願いします。

  • Javaを使用したファイル操作について

    Javaを使用したプログラミングと聞くと、Webアプリケーションの開発というイメージがあるのですが、VBNやbat処理等でできるファイル操作などはできるのでしょうか? また、Javaに限らず、c言語等のプログラミング言語でも可能なのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • CかJavaか

     これからプログラミング言語を勉強しようと思って何言語をしようか迷っております。それはC言語かJavaかです。  何が目的かといいますと、ゲームの作成やちょっとしたアプリケーションの開発です。(Web用ではありません。) Javaでも開発できるそうなのですが、大体はC言語(系)で開発しているのですよね? あともうひとつ、携帯電話用のアプリってJavaでしか開発できないんですか?Cでは不可能ですか? ちなみに、私が今までやってきたのはJavaScriptとPHPぐらいです。よろしくお願いします。

  • アンドロイドアプリ どのプログラミング言語の知識が

    アンドロイドアプリを開発する場合 どのプログラミング言語の知識が必要になりますか? javaですか?

  • 就職活動の技術アピール提出について質問があります。

    私は専門学校に通っています。 就職活動をしていく中で、企業に対して技術アピールを任意で出来るという企業があります『任意提出なのですが、ご自身で作成されたソフトウェア開発技術に関する内容のソースコード等、関連するデータ全て』とあります。 私は、プログラミング言語のC言語とJavaを習いだして2か月ほどです。 書けるソースもまだまだ技術不足です。 それでも、提出してもいいのでしょうか? 失礼ではないのでしょうか?

  • Macでプログラミング

    中学生です。PC等の知識はかなりある方だと思います。 今までWindowsでJavaを使ってのプログラミングを入門程度にやってきました。しかし、Macに乗り替え、また、将来的にiPhoneアプリの開発をしたいと思っています。UNIX系のコマンドも分かりませんし、iPhoneアプリの開発言語はオブジェクトCなので、これからそちらを勉強しようと思い始めました。もちろん、途中でJavaを投げ出すのには抵抗があったのですが、この方法が一番合理的かな、と思っています。 そこで質問ですが、オブジェクトCとC言語はどう違うのでしょうか。互換性はあるらしいですが、どのように勉強したらいいか分かりません。また、違いがあったとして、片方勉強すると、ごっちゃになったりしませんか? Mac向けのいい書籍を御存じの方も教えてください。

  • CGIで定時にメール送信する方法

    こんにちわ。 今CGIで定時にメールを送信して知らせてくれるスケジ ュール?的なものを作ってます。 例えば、自分のメルアド、日時、時間を登録してもらい、 携帯電話へお知らせメールを送信するといったものです。 実現可能だとは思いますが、CGIについてはまだまだ勉 強中なので、具体的な方法が全然わかりません。 いいサイトがなかったのでここへ投稿させていただきまし た。 漠然とした質問かもしれませんが、詳しくアドバイスよろ しくお願いします。 ちなみに、開発環境として、windows me、Apache、 Visual c++です。 CGIはC言語で作っています。

    • ベストアンサー
    • CGI