SYNを送ってみる(1)の続きです。

 

H8マイコン(192.168.254.113)からサーバー(192.168.1.209)に接続しようとしてます。

 

SYNを送るためには相手のMACアドレスを知る必要があります。

 

サーバーにVNC接続してコマンドプロンプトでMACアドレスを取得してみました。

IntelのネットワークカードでMACアドレス:00-19-99-CB-D0-9Cになっています。

 

VNCの環境が無い場合は、プログラムで相手先のMACを取得します。

void mac_read(){
 unsigned int i;
 char *mac;
 
 mac = query_mac(TCP_SERVER); //宛先IPを送ってMACアドレスを取得する
 printf("mac=%x\n", mac); //MACアドレスが登録されたメモリー番地
 
 for(i=0; i<6; i++){
  printf("0x%02x ", *(mac+i)); //MACアドレスを表示する
 }
 printf("\n");
}

上のプログラムを実行した結果です。

MACアドレス:00-09-41-E7-2B-B3

 

VNCで調べたMACアドレスと違ってます!

ベンダーをネット検索してみました。

検索サイト:

「MACベンダー検索くん」

http://mobile.shinsv.mydns.jp/tech/mac_address/

 

Allied Telesisでした。プログラムで取得したMACアドレスは間に入っているルーターのようです。

 

ネットワーク越えのTCP接続では、宛先MACにルーターのMACアドレスをセットします。パケットを受信したルーターは、宛先IPアドレスのMACアドレスに付け替えてパケットを送り出します。

 

参考ページ:

ITBOOK「MACアドレスの付け替え」

https://www.itbook.info/study/p86.html

 

SYNを送ってみる(1)へ

SYNを送ってみる(3)へ

 

MENUに戻る