ネットワークインターフェイスリストを保持するユニットをクロスプラットフォームに変換しています。現在のバージョンでは、raw winsockを使用して、システム内の各ネットワークインターフェイスのアドレス、マスク、およびブロードキャストアドレスを取得します。
このクロスプラットフォームを作成する最も簡単な方法は、Indyを使用することだと思います。これは、すべてのインターフェイスのIPアドレスを取得するための便利な簡単な方法であることがわかりましたAddLocalAddressesToList
が、必要なその他の情報(マスクとブロードキャストアドレス)を取得する方法がわかりません。ブロードキャストアドレスを計算できると思うので、それは本当に私が理解できないマスクです。
ご参考までに。これは、すべてのインターフェイスのIPアドレスを取得するために私が見つけたコードです。
TIdStack.IncUsage;
try
GStack.AddLocalAddressesToList(Memo1.Lines);
finally
TIdStack.DecUsage;
end;