2

Lazarus IDE を使用して Linux システムでプログラムを作成しています。プログラムは、インターネットまたはイントラネットに接続することになっています。したがって、システムにアクティブなネットワーク カードが 2 つある場合、wifi などのインターネットまたはイントラネットに接続するために使用できるすべての利用可能なネットワーク接続のユーザー リストを表示したい場合、このプログラムは利用可能な接続を表示する必要があります。

現時点では、どこから始めればよいか、どのツールを使用すればよいかわかりません。

ヒント、手がかり、アドバイスをいただければ幸いです。

4

2 に答える 2

1

次のコードは、私の Linux システムで動作します。インターネットまたはイントラネットに接続できるすべての利用可能な接続ポイントを出力します。名前とIPアドレスを出力するようにコードを修正しました。

#include <ifaddrs.h>
#include <stdio.h>
#include <stdlib.h>
#include <arpa/inet.h>
// you may need to include other headers

int main()
{
   struct ifaddrs* interfaces = NULL;
   struct ifaddrs* temp_addr = NULL;
   int success;
   char *name;
   char *address;


  // retrieve the current interfaces - returns 0 on success
  success = getifaddrs(&interfaces);
  if (success == 0)
  {
     // Loop through linked list of interfaces
     temp_addr = interfaces;
     while (temp_addr != NULL)
     {
        if (temp_addr->ifa_addr->sa_family == AF_INET) // internetwork only
        {
            name = temp_addr->ifa_name;
            address = inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr);
        printf("%s %s\n",name,address);
        }

        temp_addr = temp_addr->ifa_next;
     }
  }

  // Free memory
  freeifaddrs(interfaces);
}
于 2013-11-18T19:28:37.503 に答える