簡體   English   中英

如何在Flex中查找系統(本地)IP地址?

[英]How to find system(local) IP address in Flex?

我正在開展一個項目。我們可以向IT部門注冊有關系統故障或軟件故障的投訴。
在我們公司,每台計算機都有唯一的系統(本地)IP地址

我希望我的投訴能夠在該地址注冊,IT人員可以通過該地址識別我的系統並對其進行修復。
我在SO上發現了許多但沒有解決我的問題。 那有什么解決方案嗎? 任何建議都會非常有幫助。

這是我從Flex AIR客戶端獲取ip-address的方式:

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 "";
    }

您沒有指定這是基於瀏覽器的應用程序還是基於桌面的AIR App。

基於瀏覽器的Flash Player將無法訪問IP地址。 但是,當Flash Player ping遠程服務時,請求的IP地址通常可作為CGI變量用於該請求。 如何訪問這些CGI變量將取決於您選擇的服務器端語言。

我不相信AIR具有對IP地址的本機訪問權限,但是您應該能夠使用NativeProcess或Native Extensions等方式訪問它。 您必須編寫一些特定於操作系統的代碼才能獲得它。

您無法單獨通過Flash Player執行此操作。 在這一點上,你只需要接受這個作為最終答案。 對此給予賞金沒有多大意義。 如果你谷歌這樣,你會發現許多Flash專家都對Adobe的這種限制感到沮喪。

另一個答案是正確的 也就是說,如果你使用Adobe Air,或者有其他非Adobe方法,如CGI,PHP,Java,.NET等,有很多方法可以做到這一點。

如果您想在.NET中詢問有關如何執行此操作的問題,請將其發布在另一個問題中。 (你最初提出的問題是一個很好的問題,應該保持原樣。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM