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

Actionscript 3 如何在Flex中查找系统(本地)IP地址?,actionscript-3,apache-flex,ip-address,Actionscript 3,Apache Flex,Ip Address,我在做一个项目。我们可以向IT部门投诉系统故障或软件故障。 在我们公司,每台计算机都有唯一的系统(本地)IP地址 我希望将我的投诉登记到该地址,IT人员可以通过该地址识别我的系统并进行维修。 我发现很多人都是这样,但没有一个人解决了我的问题。有什么解决办法吗?任何建议都会非常有用。您没有指定这是基于浏览器的应用程序还是基于桌面的AIR应用程序 基于浏览器的Flash Player将无法访问IP地址。但是,当Flash Player ping远程服务时,请求的IP地址通常作为CGI变量提供给该请求

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

我希望将我的投诉登记到该地址,IT人员可以通过该地址识别我的系统并进行维修。

我发现很多人都是这样,但没有一个人解决了我的问题。有什么解决办法吗?任何建议都会非常有用。

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

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


我也不相信AIR具有对IP地址的本机访问权限,但是您应该能够使用NativeProcess或本机扩展之类的方式访问它。不过,您必须编写一些特定于操作系统的代码才能做到这一点

单靠Flash Player无法做到这一点。在这一点上,你只需要接受这一点作为最终答案。对这件事悬赏没有多大意义。如果你用谷歌搜索一下,你会发现很多Flash专家对Adobe的这一限制感到沮丧

另一个答案是正确的。也就是说,如果您使用AdobeAIR或其他非Adobe方法,如CGI、PHP、Java、.NET等,则有一些方法可以做到这一点


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

这是我从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 "";
    }
公共静态函数getClientIPAddress(版本:String):String{
var ni:NetworkInfo=NetworkInfo.NetworkInfo;
var interfaceVector:Vector.=ni.findInterfaces();
var currentNetwork:网络接口;
对于每个(变量networkInt:interfaceVector中的NetworkInterface){
如果(networkInt.active){
对于每个(变量地址:networkInt.addresses中的InterfaceAddress){
if(address.ipVersion==版本){
返回地址。地址;
}
}
}
}
返回“”;
}

我的应用程序基于浏览器。我不太了解CGI变量和NativeProcess,无论如何,感谢您的回复…:)如果可以使用.Net webservice,该如何操作?您可以访问AIR()中的网络接口,该接口将为您提供网络设备及其属性(例如IP地址)的列表,但它似乎不会向您提供“这是您当前的IP”的信息。NativeProcess或本机扩展仅适用于AIR应用程序。在ASP.NET中,似乎可以使用服务器变量:。查看REMOTE_ADDRI通常使用whatismyip.com作为个人而不是脚本来执行此操作,但是他们确实有此页面:和策略页面:最终您可能希望控制服务器执行此操作,正如所述,基本上可以在任何服务器端代码中执行此操作,因为通过的数据包将设置IP源。同样,这可能是一种选择,因为现在有悬赏;我建议使用CGI变量有什么原因不起作用吗?特别是访问服务器端ASP.NET代码中的REMOTE_ADDR server变量?@www.Flextras.com我不知道Adobe的这一限制。我在C#Web服务中使用了REMOTE#ADDR,它可以正常工作。所以要获得系统IP,我必须从Flex调用.Net服务,这有点不舒服。很抱歉,这让你不舒服,但事实就是这样。您打算接受答案和/或奖励奖金,还是让奖金代表过期?@www.Flextras.com我肯定会接受答案。通过提供bouny,随着视图的增加,我了解了许多新概念。谢谢我的实际需求是在FlexWeb应用程序中。