LabVIEWまたはLabWindows™/CVIを使用してプログラム的にコンピュータとターゲットのIPアドレスを取得する

更新しました Jun 27, 2023

使用製品

ハードウェア

  • CompactRIO Controller
  • CompactRIO Chassis

ソフトウェア

  • LabVIEW Full
  • LabVIEW Base
  • LabWindows/CVI Base
  • LabWindows/CVI Full

問題

LabVIEWまたはLabWindows™/ CVIを使用してコンピュータのIPアドレスをプログラム的に読み取るにはどうすればよいですか?また、LabVIEWでターゲットに割り当てられているIPを取得するにはどうすればよいですか?

解決策

LabVIEW

  • TCPパレットにある文字列をIPアドレスに変換関数を使用します。

 
  • コンピュータのすべてのIPアドレスを取得するには、文字列をIPアドレスに変換関数を右クリックして、複数出力を選択します。 

 
  • 文字列をIPアドレスに変換関数を使用して、ターゲットに割り当てられたDHCP IPを取得できます。
 

LabWindows™/CVI 

  • GetTCPHostAddr関数を呼び出します。
  • コンピュータのすべてのIPアドレスを取得するには、GetALLTCPHstAddressesを呼び出します。
次の例は、LabWindpws/CVIでこれを実装する方法を示しています。これは、ポインタへのポインタアドレスをchar変数に渡すことによって実現されます。ライブラリは、TCPFreeMemory関数を使用して解放する必要がある文字列の配列を割り当てます。
char ** addresses = NULL;   
int numAddresses;   
int index;     
GetAllTCPHostAddresses (&addresses, &numAddresses);   /* Use the address strings... */   
for (index = 0; index < numAddresses; index++) {   /* Free address string */   
TCPFreeMemory (addresses[index]);   }   /* Free addresses array */   
TCPFreeMemory (addresses);

追加情報

IPアドレスをドット付き10進表記またはマシン名に変換するには、ブロックダイアグラムにIPアドレスを文字列に変換関数を配置します。ドット表記法?端子にTrue定数を配線すると、IPアドレスがドット表記形式で返されます。ドット表記形式は、128.0.0.25の形式でIPアドレスを返します。ドット表記法?端子が未配線のままになっている場合、またはFalse定数が配線されている場合は、machinename.domain.comの形式でIPアドレスが返されます。