PhysicalAddress クラス
アセンブリ: System (system.dll 内)


MAC アドレス (物理アドレス) は、コンピュータやプリンタなどの各ノードをネットワーク上で一意に識別するハードウェア アドレスです。
このクラスのインスタンスは、NetworkInterface.GetPhysicalAddress メソッドによって返されます。

ローカル コンピュータのすべてのインターフェイスの物理アドレスを表示するコード例を次に示します。
public static void ShowNetworkInterfaces() { IPGlobalProperties computerProperties = IPGlobalProperties.GetIPGlobalProperties(); NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces(); Console.WriteLine("Interface information for {0}.{1} ", computerProperties.HostName, computerProperties.DomainName); if (nics == null || nics.Length < 1) { Console.WriteLine(" No network interfaces found."); return; } Console.WriteLine(" Number of interfaces .................... : {0}", nics.Length); foreach (NetworkInterface adapter in nics) { IPInterfaceProperties properties = adapter.GetIPProperties(); // .GetIPInterfaceProperties(); Console.WriteLine(); Console.WriteLine(adapter.Description); Console.WriteLine(String.Empty.PadLeft(adapter.Description.Length,'=')); Console.WriteLine(" Interface type .......................... : {0}", adapter.NetworkInterfaceType); Console.Write(" Physical address ........................ : "); PhysicalAddress address = adapter.GetPhysicalAddress(); byte[] bytes = address.GetAddressBytes(); for(int i = 0; i< bytes.Length; i++) { // Display the physical address in hexadecimal. Console.Write("{0}", bytes[i].ToString("X2")); // Insert a hyphen after each byte, unless we are at the end of the // address. if (i != bytes.Length -1) { Console.Write("-"); } } Console.WriteLine(); } }

System.Net.NetworkInformation.PhysicalAddress


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


PhysicalAddress コンストラクタ
アセンブリ: System (system.dll 内)



新しい PhysicalAddress を作成するコード例を次に示します。
public static PhysicalAddress[] StoreNetworkInterfaceAddresses() { IPGlobalProperties computerProperties = IPGlobalProperties.GetIPGlobalProperties(); NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces(); if (nics == null || nics.Length < 1) { Console.WriteLine(" No network interfaces found."); return null; } PhysicalAddress[] addresses = new PhysicalAddress[nics.Length]; int i = 0; foreach (NetworkInterface adapter in nics) { IPInterfaceProperties properties = adapter.GetIPProperties(); PhysicalAddress address = adapter.GetPhysicalAddress(); byte[] bytes = address.GetAddressBytes(); PhysicalAddress newAddress = new PhysicalAddress(bytes); addresses[i++]=newAddress; } return addresses; }

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


PhysicalAddress フィールド
PhysicalAddress メソッド

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 オーバーライドされます。 |
![]() | GetAddressBytes | 現在のインスタンスのアドレスを返します。 |
![]() | GetHashCode | オーバーライドされます。 物理アドレスのハッシュ値を返します。 |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | Parse | 指定された String を解析し、その内容をこのメソッドから返される PhysicalAddress のアドレス バイトとして格納します。 |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | オーバーライドされます。 このインスタンスのアドレスの String 形式を返します。 |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

PhysicalAddress メンバ
ネットワーク インターフェイス (アダプタ) のメディア アクセス制御 (MAC: Media Access Control) アドレスを提供します。
PhysicalAddress データ型で公開されるメンバを以下の表に示します。



名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 オーバーライドされます。 |
![]() | GetAddressBytes | 現在のインスタンスのアドレスを返します。 |
![]() | GetHashCode | オーバーライドされます。 物理アドレスのハッシュ値を返します。 |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | Parse | 指定された String を解析し、その内容をこのメソッドから返される PhysicalAddress のアドレス バイトとして格納します。 |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | オーバーライドされます。 このインスタンスのアドレスの String 形式を返します。 |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

物理アドレス
(PHYSICAL ADDRESS から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/01/16 08:20 UTC 版)
ナビゲーションに移動 検索に移動コンピューティングにおいて、物理アドレス(ぶつりアドレス、英語: physical address)または実アドレス(じつアドレス、英語: real address)とは、データバスが、メインメモリの特定の記憶セル、またはメモリマップドI/Oデバイスのレジスタにアクセスすることを可能にするために、 アドレスバス回路上の二進数の形式で表されるメモリアドレスである。
CPUにおける使用
仮想記憶をサポートしているコンピュータでは、 物理アドレスという用語は主に仮想アドレスと区別するために使用される。特に、メモリアドレスを変換するためにメモリ管理ユニット(MMU)を利用するコンピュータでは、仮想アドレスと物理アドレスは、それぞれMMUによって実行される変換の前後のアドレスのことを指す[1]。
アラインされていないアドレス指定
基盤として使用するコンピュータアーキテクチャによっては、アラインされていないメモリアクセスを行うと、コンピュータのパフォーマンスが低下する可能性がある。例えば、Intel 8086などの16ビットメモリデータバスを備えた16ビットコンピュータは、アクセスが偶数アドレスにアラインされていると、一般にオーバーヘッドがより少なくなる。この場合、1つの16ビット値をフェッチするには、単一のメモリ読取り操作、すなわちデータバスを介した単一の転送が必要である[2][3]。
16ビットのデータ値が奇数アドレスから始まる場合、プロセッサは2つのメモリ読み出しサイクルを実行して値をロードする必要がある。つまり、1回目の読み出しサイクルで下8ビットを読み出し、2回目で上8ビットを読み出す。いずれの読み出しサイクルでも16ビットごとにデータが取り出されるので、必要のない8ビットは廃棄される。モトローラ68000、モトローラ68010、SPARCなどの一部のプロセッサでは、アラインされていないメモリアクセスにより例外(通常、POSIXのSIGBUSなどのソフトウェア例外)が発生する[2]。
他のデバイスでの使用
![]() | この節の加筆が望まれています。 (2012年1月) |
ダイレクトメモリアクセス(DMA)機能は、マザーボード内の他のデバイスがメインメモリをアドレス指定できるようにする。従って、このようなデバイスは、物理的アドレスの知識も必要とする。
関連項目
- アドレス定数
- アドレッシングモード
- アドレス空間
- ページアドレスレジスタ
- ポインタ (プログラミング)
- 主記憶装置(メインメモリ)
- 仮想記憶
脚注
- ^ Frank Uyeda (2009年). “Lecture 7: Memory Management (PDF)”. CSE 120: Principles of Operating Systems. UC San Diego. 2013年12月4日閲覧。
- ^ a b Daniel Drake (2007年12月4日). “Memory access and alignments”. LWN.net. 2013年12月4日閲覧。
- ^ “Documentation/unaligned-memory-access.txt”. kernel.org. 2013年12月4日閲覧。
|
- PHYSICAL ADDRESSのページへのリンク