2012-01-12 27 views
3

私はプロジェクトに取り組んでいます。そのため、システム障害やソフトウェア障害についてIT部門に苦情を登録することができます。
当社では、各コンピュータは、私は私の苦情は、IT担当者が私のシステムを識別し、それを修復することができたことにより、そのアドレスに登録したい独自のシステム(ローカル)IPアドレスFlexでシステム(ローカル)IPアドレスを見つけるには?

を持っています。
私は多くを見つけましたが、私の問題は解決しませんでした。そのための解決策はありますか?どんな提案も非常に役に立ちます。

+0

があるのでこれで恩恵を受ける。 CGI変数を使用するという私の提案がうまくいかない理由がありますか?具体的には、サーバー側のASP.NETコード内のREMOTE_ADDRサーバー変数にアクセスしますか? – JeffryHouser

+0

@ www.Flextras.com私はAdobeからこの制限を知っています。 C#WebサービスでREMOTE_ADDRを使用しています。だから、システムIPを取得するには、私はFlexから少し不快な.Netサービスを呼び出さなければなりません。 –

+0

それはあなたを不愉快にして申し訳ありませんが、それはそれが何であるかです。あなたは答えを受け入れるか、または賞金を授与するのか、または賞金の担当者が期限切れになるのでしょうか? – JeffryHouser

答えて

3

これがブラウザベースのアプリケーションかデスクトップベースのAIRアプリケーションかを指定していません。

ブラウザベースのFlash Playerは、IPアドレスにアクセスできません。ただし、Flash Playerがリモートサービスにpingを実行すると、要求のIPアドレスは通常、その要求に対してCGI変数として使用できます。これらのCGI変数にどのようにアクセスするかは、選択したサーバー側言語に依存します。

AIRにはIPアドレスへのネイティブアクセスがあるとは思いませんが、NativeProcessやNative Extensionsなどを使用してAIRにアクセスできるはずです。あなたはそれを得るためにいくつかのオペレーティングシステム固有のコードを書く必要があります。

+0

私のアプリケーションはブラウザベースです。私はCGI変数とNativeProcessについてはあまり考えていませんが、何らかの形で応答してくれてありがとうございます。:)それを行う方法は.Net webserviceを使用することができますか? –

+1

AIR([source](http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b8f6c0-7ffe.html#WSb2ba3b1aad8a27b04a6701d612482d399e5-8000)のネットワークインターフェイスにアクセスできます。これにより、ネットワークデバイスとそのプロパティ(例:IPアドレス)を表示することはできませんが、これはあなたの情報を「これはあなたの現在のIP」とは見なさないようです。 – NoobsArePeople2

+1

NativeProcessまたはネイティブ拡張は、AIRアプリケーションでのみ使用できます。 ASP.NETでは、サーバー変数(http://www.w3schools.com/asp/coll_servervariables.asp)を使用できるようです。 REMOTE_ADDRを見てください – JeffryHouser

1

これは、Flash Playerだけでは実行できません。この時点で、それを最終的な回答として受け入れるだけです。これに恩恵を与えることにはあまり意味がありません。 。 。あなたがGoogleであれば、Flashの多くのエキスパートがAdobeのこの制限に悩まされています。

その他の回答は正しいです。 。 。つまり、Adobe AirやCGI、PHP、Java、.NETなどの非Adobeメソッドを使用する場合は、これを実行する方法があります。

これを行う方法について質問がある場合は.NET、別の質問で投稿してください。 (として最初に尋ねたあなたの質問は良いものです、とあるように保たれるべきである。)

3

これは私は、Flex AIRクライアントからIPアドレスを取得する方法です:

public static function getClientIPAddress (version:String):String { 
     var ni:NetworkInfo = NetworkInfo.networkInfo; 
     var interfaceVector:Vector.<NetworkInterface> = ni.findInterfaces(); 
     var currentNetwork:NetworkInterface; 

     for each (var networkInt:NetworkInterface in interfaceVector) { 
      if (networkInt.active) { 
       for each (var address:InterfaceAddress in networkInt.addresses) { 
        if (address.ipVersion == version) { 
         return address.address; 
        } 
       } 
      } 
     } 
     return ""; 
    } 
+0

OK。ありがとう。私の実際の要件はフレックスウェブアプリケーションでした。 –

関連する問題