次の方法で共有


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 本体

関連項目

XGameStreaming