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

时间:2012-01-12 04:57:09

标签: actionscript-3 flex ip-address

我正在开展一个项目。我们可以向IT部门注册有关系统故障或软件故障的投诉 在我们公司,每台计算机都有唯一的系统(本地)IP地址

我希望我的投诉能够在该地址注册,IT人员可以通过该地址识别我的系统并对其进行修复 我在SO上发现了许多但没有解决我的问题。那有什么解决方案吗?任何建议都会非常有用。

3 个答案:

答案 0 :(得分:3)

您没有指定这是基于浏览器的应用程序还是基于桌面的AIR App。

基于浏览器的Flash Player无法访问IP地址。但是,当Flash Player ping远程服务时,请求的IP地址通常可作为CGI变量用于该请求。如何访问这些CGI变量将取决于您选择的服务器端语言。

我不相信AIR具有对IP地址的本机访问权限,但是您应该能够使用NativeProcess或Native Extensions等方式访问它。您必须编写一些特定于操作系统的代码才能获得它。

答案 1 :(得分:3)

这是我从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 "";
    }

答案 2 :(得分:1)

您无法单独通过Flash Player执行此操作。在这一点上,你只需要接受这个作为最终答案。对此给予赏金没有多大意义。 。 。如果你谷歌这样,你会发现许多Flash专家都对Adobe的这种限制感到沮丧。

其他答案是正确的。 。 。也就是说,如果您使用Adobe Air,或者使用非Adobe方法(如CGI,PHP,Java,.NET等),有很多方法可以执行此操作。

如果您想在.NET中询问有关如何执行此操作的问题,请将其发布在另一个问题中。 (你最初提出的问题是一个很好的问题,应该保持原样。)