XGameStreamingGetClientIPAddress
この API は、Xbox ゲーム ストリーミング サービスを介してコンテンツをストリーミングするために使用されているエンド ユーザー クライアント デバイスの IP アドレスを返します。 この API および関連情報は、情報収集についてエンド ユーザーに通知することに関するマイクロソフトの標準プライバシー ガイドラインに準拠している場合にのみ使用してください。 この API の準拠した使用に関して質問や懸念がある場合は、Microsoft の担当者にお問い合わせください。
構文
HRESULT XGameStreamingGetClientIPAddress(
XGameStreamingClientId client,
size_t ipAddressSize,
char* ipAddress
)
パラメーター
client _In_
型: XGameStreamingClientId
クエリされているストリーミング クライアント デバイス。
ipAddressSize _In_
型: size_t
提供される ipAddress
バッファの最大サイズ。 通常、この値は ClientIPAddressMaxBytes にする必要があります。
ipAddress _Out_writes_z_(ipAddressSize)
型: char*
指定されたクライアントの IP アドレスが格納されるバッファ。
戻り値
型: HRESULT
成功した場合は S_OK を返し、それ以外の場合はエラー コードを返します。
返される可能性のあるエラー
エラー コード | エラー値 | エラーの原因 |
---|---|---|
E_GAMESTREAMING_NOT_INITIALIZED | 0x89245400 | XGameStreaming ランタイムが初期化されていません。 他の API を呼び出す前に XGameStreamingInitialize を呼び出してください。 |
E_GAMESTREAMING_CLIENT_NOT_CONNECTED | 0x89245401 | 指定されたクライアントが接続されていません。 |
E_GAMESTREAMING_NO_DATA | 0x89245402 | 要求されたデータは利用できません。 データは後で利用可能になる場合があります。 |
E_NOT_SUFFICIENT_BUFFER | 0x7A | ipAddress は、IP アドレスと null 終了文字を保持するのに十分な大きさではありません。 |
エラー コードの一覧については、「エラー コード」を参照してください。
解説
ipAddress
は、IPv4 アドレス (1.2.3.4) または IPv6 アドレス (1:2:3:4:5:6:7:8) のいずれかです。 必要に応じて、ParseNetworkString を使用して文字列を解析できます。
返される IP アドレスは、Xbox がストリーミング クライアントから受け取ったものです。 ストリーミング クライアントが VPN を使用しているか、NAT の背後にある場合、地理位置情報に IP アドレスを使用すると問題が発生する可能性があります。
注意
プライベート IP アドレスは、ストリーミング クライアントと Xbox が同じプライベート ネットワーク上にある開発シナリオまたはリモート プレイ シナリオ中に返される場合があります。
例
void GameStreamingClientManager::GetClientIPAddress(XGameStreamingClientId client)
{
// Create the output buffer for the IP address
char ipAddress[ClientIPAddressMaxBytes];
// Get the IP address of the client
HRESULT hr = XGameStreamingGetClientIPAddress(client, ClientIPAddressMaxBytes, ipAddress);
if (SUCCEEDED(hr))
{
// Game logic to use IP address
}
else if (hr == E_GAMESTREAMING_CLIENT_NO_DATA)
{
// Game logic handles no data on client case
}
else
{
// In case of error just log and proceed as if there was no data
LogFormat(L"XGameStreamingGetClientIPAddress failed %x", hr);
}
}
要件
ヘッダー: xgamestreaming.h
ライブラリ: xgameruntime.lib
サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体